Как вы можете создавать файлы cookie в Angular 6? Для AngularJS было ngcookie
. Каков эквивалентный способ создания файлов cookie в Angular 6?
Что эквивалентно ngcookie AngularJS в Angular 6?
Ответы (4)
Вы можете использовать этот пакет узлов для него
npm install ngx-cookie-service --save
- Добавьте в свой модуль:
import { CookieService } from 'ngx-cookie-service';
- Добавьте
CookieService
к провайдерам модуля. - Вставьте его в свой конструктор.
- Используйте
cookie.get(nameOfCookie)
для получения определенного файла cookie, используйтеcookie.set(nameOfCookie,cookieValue)
для добавления нового файла cookie.
@NgModule
добавьте его как провайдера providers: [ CookieService ]
- person CodeWarrior; 24.08.2018
Прежде всего, вы должны спросить себя: Действительно ли мне нужны файлы cookie?:
Файлы cookie когда-то использовались для общего хранения данных на стороне клиента. Хотя это было законно, когда они были единственным способом хранения данных на клиенте, в настоящее время рекомендуется предпочесть современные API-интерфейсы хранения. Файлы cookie отправляются с каждым запросом, поэтому они могут снизить производительность (особенно для мобильных подключений для передачи данных). Современные API для клиентского хранилища — это API веб-хранилища (localStorage и sessionStorage) и IndexedDB. (Источник: MDN)
Итак, если вы еще этого не сделали, вы можете прочитать о Web Вместо этого API хранилища.
Если вы хотите продолжить использование файлов cookie, читайте дальше.
Я попробовал ngx-cookie-service
, и это не сработало для меня. У меня возникала проблема за проблемой, в итоге я обсудил ее на github, попытался обновить пакеты. Мне потребовалось около дня, чтобы понять, что то, что мне нужно, не должно быть таким сложным, ведь получение/установка файлов cookie — это просто встроенная функция javascript.
У меня больше не было времени терять, и я написал это простое CookieService
сам. И я просто хотел поделиться этим с другими отчаянными разработчиками. :)
Простой CookieService
Я создал этот gist , который является облегченной альтернативой ngx-cookie-service.
Настройка и использование
Конечно, вам нужно зарегистрировать его в вашем файле app.module.ts
. Добавьте его в список ваших провайдеров:
providers: [FooService, BarService, CookieService]
Затем используйте его в своих компонентах, например. следующим образом:
private _sessionId: string;
constructor(private cookieService: CookieService) {
this._sessionId = cookieService.get("sessionId");
}
public set sessionId(value: string) {
this._sessionId = value;
this.cookieService.set("sessionId", value);
}
Обратите внимание, что вы можете использовать инструменты отладки, чтобы убедиться, что файл cookie действительно установлен, и убедиться, что он присутствует в последующих HTTP-запросах. (скриншоты Chrome, но Firefox и Edge имеют похожие обзоры)
withCredentials: true
. Мне нужно значение файла cookie, чтобы я мог отправить его в заголовке почтового запроса. Я знаю, что отправляю правильный файл cookie, который автоматически устанавливается с помощью withCredentials, но мне нужно отправить заголовок со значением файла cookie.
- person danny gonzalez; 10.01.2019
document.cookies
. Я полагаю, что не могу сделать это с помощью localStorage
или sessionStorage
, потому что мне все равно придется отправить значение, которое я хочу сохранить в виде файла cookie. Не так ли?
- person Manu Chadha; 20.11.2019
Сейчас: npm install ngx-cookie --save
Документ: https://github.com/salemdar/ngx-cookie