【问题标题】:XHR post requests fail with CORSXHR 发布请求因 CORS 失败
【发布时间】:2013-02-02 03:07:57
【问题描述】:

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

【问题讨论】:

    标签: javascript xmlhttprequest cors


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢。我的服务器响应码不是200,也造成了一些问题。
    猜你喜欢
    • 2017-05-20
    • 1970-01-01
    • 1970-01-01
    • 2016-06-18
    • 2018-03-03
    • 2021-03-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多