[英]count of cookies is zero after page refresh and angular routing with url rewrite
我正在使用.net core 2.0和angular 4的角度Spa模板。
頁面刷新后,我的cookie數量為零。 事實上,在刷新頁面后,我在HttpContext中沒有得到任何東西。
如果我使用角度系統菜單,它工作正常。
現在,這是我在后端獲取cookie的代碼。
private string GetCookie(HttpContext httpContext, string cookieName)
{
var rqstCookie = httpContext.Request.Cookies[cookieName];
return !string.IsNullOrEmpty(rqstCookie) ? rqstCookie : null;
}
一個重要的事情是,當我點擊菜單時,它會加載組件和服務文件,然后它向C#controller請求所有標題和選項。 但是當我刷新頁面時,整個過程都會被跳過,所以我認為這些選項不會傳遞到后端,這就是為什么我的cookie是空的。
在我的其他應用程序中,我已經使用url重寫同樣的問題,它在那里工作,但在這里,因為這個應用程序是角度spa模板,url重寫不起作用。
我也嘗試設置url重寫,就像我在舊應用程序中所做的那樣,但它給了我錯誤。 這是我遵循的url重寫模塊的鏈接。 https://stackoverflow.com/a/26152011/5816119
我已將Cookie更新為Session Cookie,但它也無效。
你能指導我如何獲取所有的cookie和其他數據,即使用戶刷新頁面。 謝謝...
這是一個有棱角的問題。
當我在路由模塊中添加APP_BASE_HREF
時,它突然開始工作了。
https://stackoverflow.com/a/34535256/5816119
這是我的代碼,
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: '/' },
],
};
所以,它基本上是路由器端的哈希技術,似乎我在我的應用程序中也缺少這個提供程序。
嘗試在編寫cookie時使用此代碼指定cookie何時到期
option.Expires = DateTime.Now.AddDays(x);
Response.Cookies.Append(cookiename, cookievalue, option);
您可以將AddDays(x)
修改為所需的天數
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.