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.

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