AngularJS - отправляет ли $resource запросы куки автоматически?
Я использую $ ресурс в своем приложении angularJS. Это автоматически отправляет мои куки? Я делаю запросы в том же домене.
3 ответа
Браузер всегда отправляет cookie вместе с запросом (независимо от того, является ли это запросом XHR или нет), если все предположения выполнены (тот же домен, соответствующий путь, соответствующий порт, тот же протокол, срок действия которого не истек и т. Д.).
поскольку $resource
Сервис представляет собой простую упаковку Ajax, которую ваши куки будут / должны отправлять (если все на месте).
Нет. Но если вы хотите отправить куки, то вы можете попробовать сервис $cookies, чтобы получить куки и отправить с API либо в полезной нагрузке, либо в заголовке.
Вы также можете установить cookie в заголовке по умолчанию (с помощью $cookies
сервис введен), поэтому вам не нужно указывать его во всех вызовах API.
var cookie = $cookies.myCookie; // suppose you already set $cookies.myCookie= 'xxx';
$http.defaults.headers.post.Cookies = cookie;
Обратите внимание, что запуск разных приложений в одном и том же домене, но на разных портах также может быть причиной, по которой файлы cookie не отправляются.
Файлы cookie не должны быть привязаны к конкретному порту (в отношении SOP), но CORS определенно так и есть. Также см. Определен ли порт файлов cookie HTTP?
По моему опыту, ни один из существующих браузеров (FF 47, Chrome 51, IE11) не отправляет файлы cookie, например, с localhost:3000 на localhost:8080 в запросе XHR.