2013-02-17 146 views
2

我想从另一个域test.example.com访问example.com。 我已经安装在服务器example.com与CORS头像这样(在nginx.conf)回应头:XHR POST请求失败,CORS

 add_header Access-Control-Allow-Origin $http_origin; 
    add_header Access-Control-Allow-Credentials true; 
    add_header Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS"; 
    add_header Access-Control-Allow-Headers "*"; 

如果我发送一个GET请求,可以suceed,但如果我发送POST请求其将失败,并出现此错误:

XMLHttpRequest cannot load http://example.com/path. Origin http://test.example.com is not allowed by Access-Control-Allow-Origin. 

我该如何处理cors的请求?

回答

3

这取决于浏览器。有些浏览器不喜欢Access-Control中的通配符。尝试将发布请求的所有标题放入Access-Control-Allow-Headers(例如来自Access-Control-Request-Headers)。

还请注意,基本的GET请求,你通常不需要任何特定的服务器扩展 - 这可能是一个解释为什么要工作(见https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS)。

如果这不起作用:哪些浏览器中使用您能不能给我们更多的细节,什么要求它使。

+0

感谢。我的服务器的响应代码不是200,这也造成了一些问题。 – ShiningRay 2013-02-18 12:45:01