XHR发布请求因CORS而失败

时间:2013-02-17 16:55:44

标签: javascript xmlhttprequest cors

我想从另一个域test.example.com访问example.com。 我已经设置了服务器example.com来响应带有CORS头的头文件(在nginx.conf中):

     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请求,但是如果我发送的POST请求将因此错误而失败:

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

如何使用cors发布请求?

1 个答案:

答案 0 :(得分:3)

这取决于浏览器。有些浏览器不喜欢Access-Control中的通配符。尝试将post请求的所有标头放在Access-Control-Allow-Headers中(例如,从Access-Control-Request-Headers)。

另请注意,对于基本的GET请求,您通常不需要任何特定的服务器扩展 - 这可能是GET工作原理的解释(请参阅https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS)。

如果这不起作用:您能否向我们提供有关您使用的浏览器及其请求的更多详细信息。