Количество файлов cookie равно нулю после обновления страницы и угловой маршрутизации с перезаписью URL
Я использую угловой шаблон Spa с.net core 2.0 и angular 4.
Я получаю нулевое количество файлов cookie после обновления страницы. и на самом деле я не получаю ничего в HttpContext после обновления страницы.
это работает нормально, если я использую угловое системное меню.
Теперь вот мой код для получения куки в бэк-энде.
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)
на количество дней вы хотите