2

我想从另一个域 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 进行发布请求?

4

1 回答 1

3

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

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

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

于 2013-02-17T17:11:02.380 回答