簡體   English   中英

頁面刷新后的cookie計數為零,並且使用url重寫進行角度路由

[英]count of cookies is zero after page refresh and angular routing with url rewrite

我正在使用.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;
    }

一個重要的事情是,當我點擊菜單時,它會加載組件和服務文件,然后它向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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM