3

我在我的 angularJS 应用程序中使用了一个 $resource。它会自动发送我的 cookie 吗?我在同一个域上做请求。

4

3 回答 3

4

只要满足所有假设(相同的域、匹配的路径、匹配的端口、相同的协议、未过期等),浏览器将始终与请求一起发送 cookie(无论它是否是 XHR 请求)。

由于$resource服务只是一个简单的 Ajax 包装器,因此您的 cookie 将/应该被发送(如果一切就绪)。

于 2013-08-14T14:14:15.297 回答
3

不可以。但是如果您想发送 cookie,那么您可以尝试$cookies服务来获取 cookie 并使用 API 发送到有效负载中或包含在标头中。

您还可以在默认标头中设置 cookie($cookies注入服务),这样您就不必在所有 API 调用中指定它。

var cookie = $cookies.myCookie; // suppose you already set $cookies.myCookie= 'xxx';
$http.defaults.headers.post.Cookies = cookie;
于 2013-08-14T13:37:40.923 回答
1

请注意,在同一域但在不同端口上运行不同的应用程序也可能是不发送 cookie 的原因。

Cookie 不应该是特定于端口的(关于 SOP),但 CORS 绝对是。另请参阅HTTP cookie 端口是否特定?

根据我的经验,当前没有浏览器(FF 47、Chrome 51、IE11)在 XHR 请求中发送 cookie,例如从 localhost:3000 到 localhost:8080。

于 2016-07-06T16:21:24.867 回答