页面刷新后的cookie计数为零,并且使用url重写进行角度路由

Bha*_*rat 6 single-page-application asp.net-core-2.0 angular spa-template

我正在使用.net core 2.0和angular 4的角度Spa模板.

页面刷新后,我的cookie数量为零.事实上,在页面刷新后,我在HttpContext中没有得到任何东西.

这是我在浏览器中的cookie. 在此输入图像描述

如果我使用角度系统菜单,它工作正常.

现在,这是我在后端获取cookie的代码.

    private string GetCookie(HttpContext httpContext, string cookieName)
    {
        var rqstCookie = httpContext.Request.Cookies[cookieName];

        return !string.IsNullOrEmpty(rqstCookie) ? rqstCookie : null;
    }
Run Code Online (Sandbox Code Playgroud)

一个重要的事情是,当我点击菜单时,它会加载组件和服务文件,然后它向C#controller请求所有标题和选项.但是当我刷新页面时,整个过程都会被跳过,所以我认为这些选项不会传递到后端,这就是为什么我的cookie是空的.

在我的其他应用程序中,我已经使用url重写同样的问题,它在那里工作,但在这里,因为这个应用程序是角度spa模板,url重写不起作用.

我也尝试设置url重写,就像我在旧应用程序中所做的那样,但它给了我错误.这是我遵循的url重写模块的链接. /sf/answers/1830640801/

我已将Cookie更新为Session Cookie,但它也无效.

你能指导我如何获取所有的cookie和其他数据,即使用户刷新页面.谢谢...

Bha*_*rat 5

这是一个尖锐的附带问题。

当我APP_BASE_HREF在路由模块中添加内容时,它突然开始工作。

/sf/answers/2417467951/

这是我的代码,

import { APP_BASE_HREF } from "@angular/common";

export const sharedConfig: NgModule = {
    bootstrap: [ AppComponent ],
    declarations: [
        AppComponent,
        ...
        ],
    imports: [
        HttpModule,
        ...,
        RouterModule.forRoot([
            { path: "", redirectTo: "home", pathMatch: "full" },
            { path: "**", redirectTo: "home" }
        ], { useHash: true }),
    ],
    providers: [
        { provide: APP_BASE_HREF, useValue: '/' },
    ],
};
Run Code Online (Sandbox Code Playgroud)

因此,它基本上是路由器端的哈希技术,似乎我的应用程序中也缺少该提供程序。