我在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”访问。
有什么想法吗?
答案 0 :(得分:0)
原来Chrome没有从API服务器报告500错误。卫生署!