繁体   English   中英

访问控制允许起源之谜

[英]Access-Control-Allow-Origin Mystery

我在 Chrome(版本 32.0.1700.77)中发出 CORS 请求时遇到问题。 我肯定正在发送正确的预检标头,并且它们也在主要请求期间发送。 我应该补充一点,我正在使用 jQuery $.ajax 并将 contentType 参数设置为“application/json”。 contentType 参数的存在似乎引发了问题(因为没有它一切都很好)。

这是 OPTIONS 请求的输出。

HTTP/1.1 200 OK
X-Powered-By: Express
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: Authorization, Content-Type, X-Requested-With
Access-Control-Allow-Methods: GET, POST, PUT, DELETE
Content-Type: text/plain
Content-Length: 2
Date: Fri, 17 Jan 2014 04:58:43 GMT
Connection: keep-alive

这是主 POST 请求的输出(预期为 401):

HTTP/1.1 401 Unauthorized
X-Powered-By: Express
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: Authorization, Content-Type, X-Requested-With
Access-Control-Allow-Methods: GET, POST, PUT, DELETE
Content-Type: application/json; charset=utf-8
Content-Length: 36
Date: Fri, 17 Jan 2014 05:00:05 GMT
Connection: keep-alive

问题是 Chrome 由于某种原因无法识别 Access-Control-Allow-Origin 响应标头,并在错误控制台中显示以下行:

XMLHttpRequest 无法加载http://site1.dev:3000/api/v1/pathways 请求的资源上不存在“Access-Control-Allow-Origin”标头。 因此不允许访问源 ' http://site2.dev:8000 '。

有任何想法吗?

结果发现 Chrome 没有从 API 服务器报告 500 错误。 哦!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM