Angular.js http GET请求,发送cookie时发生CORS问题

时间:2014-05-18 15:12:06

标签: node.js angularjs http cors

我正在使用服务器端的node.js和express.js以及客户端的angular.js进行项目。我使用passport.js在服务器端设置了身份验证。因此,当我登录会话cookie时,我可以通过浏览器访问api,没有任何问题。但是当我尝试使用http请求angular.js中的api的url时,我得到“cors blocked”(是的,我做了那个)。服务器允许凭据,客户端发送withCredentials:true。有什么问题?

有趣的是服务器和客户端甚至不在不同的域中。他们都在localhost。但是,由于服务器“cors在一开始就阻止了我”,我已经启用了角色。

所以我在同一个域中有服务器和客户端。服务器中启用了Corse,我仍然无法发送cookie。

Response Headers
Access-Control-Allow-Orig...    *
Connection  keep-alive
Content-Length  33101
Content-Type    application/json
Date    Sun, 18 May 2014 15:02:41 GMT
Etag    "-796401813"
X-Powered-By    Express
access-control-allow-cred...    true
Request Headers
Accept  application/json, text/plain, */*
Accept-Encoding gzip, deflate
Accept-Language en-US,en;q=0.5
Cookie  prgck=s%3AGb1ZXuD0uXHoBbFWIcrmkSFt.%2BNt0pdVa1%2BNhUNITAPOzPjmQxklPpDrdvQz%2BACj084o
Host    localhost:1212
Origin  http://localhost:8000
Referer http://localhost:8000/app/
User-Agent  Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0

1 个答案:

答案 0 :(得分:1)

目前尚不清楚您在Express服务器上执行了什么操作,但查看您发布的标头似乎启用了Access-Control-Allow-Credentials但您没有定义Access-Control-Allow-Origin。

后者是实际启用CORS所必需的。因此,您的Express服务器必须同时设置:

Access-Control-Allow-Origin: http://my.domain.com:8080
Access-Control-Allow-Credentials: true;