Количество файлов cookie равно нулю после обновления страницы и угловой маршрутизации с перезаписью URL

Я использую угловой шаблон Spa с.net core 2.0 и angular 4.

Я получаю нулевое количество файлов cookie после обновления страницы. и на самом деле я не получаю ничего в HttpContext после обновления страницы.

Вот мой cookie в браузере. введите описание изображения здесь

это работает нормально, если я использую угловое системное меню.

Теперь вот мой код для получения куки в бэк-энде.

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

        return !string.IsNullOrEmpty(rqstCookie) ? rqstCookie : null;
    }

одна важная вещь заключается в том, что когда я нажимаю в меню, он загружает файлы компонентов и сервисов, а затем запрашивает контроллер C# со всеми заголовками и опциями. но когда я обновляю страницу, весь этот процесс пропускается, поэтому я думаю, что эти опции не доставляются в бэкэнд, и поэтому мои куки пусты.

в других моих приложениях я использовал перезапись URL для тех же самых проблем, и это работало там, но здесь, потому что это приложение является угловым шаблоном spa, перезапись URL не работает.

Я также попытался настроить перезапись URL, так же, как в старых приложениях, но это выдает ошибку. Вот ссылка на модуль перезаписи URL, по которому я следовал. /questions/30776733/kak-nastroit-iis-dlya-perezapisi-url-adresa-prilozheniya-angularjs-v-rezhime-html5/30776745#30776745

Я обновил файлы cookie для файлов cookie сеанса, но они также не работают.

можете ли вы указать мне, как получить все файлы cookie и другие данные, даже когда пользователь обновляет страницу. Спасибо...

2 ответа

Решение

Это была угловая проблема.

когда я добавил APP_BASE_HREF в моем модуле маршрутизации он вдруг начал работать.

/questions/43766297/uglovoj-marshrutizator-2-bez-bazovogo-nabora/43766309#43766309

Вот мой код,

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) на количество дней вы хотите

Другие вопросы по тегам