我在angularJS应用中使用$资源。它会自动发送我的cookies吗?我在同一个域上做请求。
答案 0 :(得分: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;
答案 1 :(得分:3)
浏览器将始终发送cookie以及请求(无论它是否是XHR请求),只要满足所有假设(相同的域,匹配的路径,匹配的端口,相同的协议,未过期)等等。)。
由于$resource
服务只是一个简单的Ajax包装器,因此您的/应该发送cookie(如果一切都已到位)。
答案 2 :(得分:1)
请注意,在同一个域上运行不同的应用程序但在不同的端口上运行也可能是导致cookie未发送的原因。
Cookie不应该是特定于端口的(关于SOP),但CORS肯定是。另请参阅Are HTTP cookies port specific?
根据我的经验,当前的浏览器(FF 47,Chrome 51,IE11)在XHR请求中将cookie从localhost:3000发送到localhost:8080。