Access-Control-Allow-Origin无法正常工作

时间:2011-05-09 20:09:20

标签: javascript http-headers xmlhttprequest cross-domain access-control

我正在制作跨域POST请求。我向网络服务器添加了Access-Control- *标头,但Google Chrome javascript控制台引发了:

XMLHttpRequest cannot load http://api.sharee.dev:3000/assets.json. Origin http://sharee.dev:4000 is not allowed by Access-Control-Allow-Origin.
POST http://api.sharee.dev:3000/assets.json undefined (undefined)

以下是请求期间传输的所有数据包:http://pastie.org/1882455

正如您所看到的,它仍然会在OPTIONS请求后发送POST请求。它在Firefox中也不起作用。 Firefox显示POST请求已发送到服务器,响应代码为200,但响应本身为空。

4 个答案:

答案 0 :(得分:2)

Access-Control-Allow-Origin和Access-Control-Allow-Credentials标头应该是任何 CORS响应的一部分(包括预检OPTIONS请求和POST请求)。您当前的示例仅在OPTIONS响应中显示它们。

答案 1 :(得分:1)

您可以在超级用户中查看以下帖子的答案。我曾经碰巧在Chrome-dev谷歌群体上发布了这个问题。

https://superuser.com/questions/384871/how-to-override-access-control-allow-origin-restriction-in-google-chrome

答案 2 :(得分:0)

完全相同的自己,但我的服务器访问,最后代理所有这些调用,让它运行。但这在发行方面并不理想。您是否尝试过匹配请求的标头和/或值与响应的那些?另外,在我的研究中,浏览器版本可以播放。请提供您正在调试的确切版本。

答案 3 :(得分:0)

我认为您还需要将Access-Control标头放在POST响应中吗?