页面刷新和 angular 路由 url 重写后 cookie 计数为零
count of cookies is zero after page refresh and angular routing with url rewrite
我在 .net core 2.0 和 angular 4 中使用 angular Spa 模板。
页面刷新后我得到的 cookie 计数为零。 事实上,页面刷新后我在 HttpContext 中没有得到任何东西。
这是我在浏览器中的 cookie。
如果我使用 angular 系统菜单,它工作正常。
现在,这是我在后端获取 cookie 的代码。
private string GetCookie(HttpContext httpContext, string cookieName)
{
var rqstCookie = httpContext.Request.Cookies[cookieName];
return !string.IsNullOrEmpty(rqstCookie) ? rqstCookie : null;
}
一件重要的事情是,当我在菜单中单击时,它会加载组件和服务文件,然后它会向 C# 控制器请求所有 headers 和选项。
但是当我刷新页面时,整个过程都会被跳过,所以我认为这个选项没有传送到后端,这就是为什么我的 cookie 是空的。
在我的其他应用程序中,我使用 url rewrite 来解决相同类型的问题并且它在那里工作但是在这里因为这个应用程序是 angular spa 模板,url rewrite 是不工作。
我也尝试设置 url 重写,就像我在旧应用程序中所做的一样,但它给我错误。这是我遵循的 url 重写模块的 link。
我已将 cookie 更新为 Session cookie,但它也不起作用。
你能指导我如何在用户刷新页面时获取所有 cookie 和其他数据吗?谢谢...
尝试在编写cookie时使用此代码指定cookie何时过期
option.Expires = DateTime.Now.AddDays(x);
Response.Cookies.Append(cookiename, cookievalue, option);
你可以修改AddDays(x)
为你想要的天数
这是一个 angular 附带问题。
当我在我的路由模块中添加 APP_BASE_HREF
时,它突然开始工作了。
这是我的代码,
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: '/' },
],
};
所以,它基本上是路由器端的哈希技术,而且我的应用程序中似乎也缺少这个提供程序。
我在 .net core 2.0 和 angular 4 中使用 angular Spa 模板。
页面刷新后我得到的 cookie 计数为零。 事实上,页面刷新后我在 HttpContext 中没有得到任何东西。
这是我在浏览器中的 cookie。
如果我使用 angular 系统菜单,它工作正常。
现在,这是我在后端获取 cookie 的代码。
private string GetCookie(HttpContext httpContext, string cookieName)
{
var rqstCookie = httpContext.Request.Cookies[cookieName];
return !string.IsNullOrEmpty(rqstCookie) ? rqstCookie : null;
}
一件重要的事情是,当我在菜单中单击时,它会加载组件和服务文件,然后它会向 C# 控制器请求所有 headers 和选项。 但是当我刷新页面时,整个过程都会被跳过,所以我认为这个选项没有传送到后端,这就是为什么我的 cookie 是空的。
在我的其他应用程序中,我使用 url rewrite 来解决相同类型的问题并且它在那里工作但是在这里因为这个应用程序是 angular spa 模板,url rewrite 是不工作。
我也尝试设置 url 重写,就像我在旧应用程序中所做的一样,但它给我错误。这是我遵循的 url 重写模块的 link。
我已将 cookie 更新为 Session cookie,但它也不起作用。
你能指导我如何在用户刷新页面时获取所有 cookie 和其他数据吗?谢谢...
尝试在编写cookie时使用此代码指定cookie何时过期
option.Expires = DateTime.Now.AddDays(x);
Response.Cookies.Append(cookiename, cookievalue, option);
你可以修改AddDays(x)
为你想要的天数
这是一个 angular 附带问题。
当我在我的路由模块中添加 APP_BASE_HREF
时,它突然开始工作了。
这是我的代码,
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: '/' },
],
};
所以,它基本上是路由器端的哈希技术,而且我的应用程序中似乎也缺少这个提供程序。