Ответ 1
Я предполагаю, что есть фаза, на которой вы попросите сервер аутентифицировать вас. После этого (и если аутентификация будет успешной), сервер вернет файл cookie в ответ. Браузер сохранит этот файл cookie и отправит его для каждого вызова.
Тем не менее, в случае кросс-доменных запросов (CORS) вам нужно установить withCredentials
XHR на true
, чтобы браузер добавлял файлы cookie в ваши запросы.
Чтобы включить это с помощью Angular2, нам необходимо расширить класс BrowserXhr
, как описано ниже:
@Injectable()
export class CustomBrowserXhr extends BrowserXhr {
constructor() {}
build(): any {
let xhr = super.build();
xhr.withCredentials = true;
return <any>(xhr);
}
}
и переопределить поставщика BrowserXhr
с расширенным:
bootstrap(AppComponent, [
HTTP_PROVIDERS,
provide(BrowserXhr, { useClass: CustomBrowserXhr })
]);
См. вопросы для получения дополнительной информации:
- Set-cookie в ответе не установлен для Angular2 post request
- xmlhttprequest и set-cookie и файлы cookie
Изменить (в соответствии с комментарием freaker)
В RC2 вы можете использовать свойство withCredentials
непосредственно в конфигурации запроса, как описано ниже:
this.http.get('http://...', { withCredentials: true })
Изменить (после комментария [maxou])
Не забудьте включить withCredentials: true в каждый запрос.