Javascript 如何正确实施CORS(访问控制允许来源)?

Javascript 如何正确实施CORS(访问控制允许来源)?,javascript,ajax,xmlhttprequest,cors,access-control,Javascript,Ajax,Xmlhttprequest,Cors,Access Control,我想通过XMLHTTP请求(XHR、AJAX)访问第三方资源(在另一个域上) 我按如下方式设置CORS(两侧-目标和原点): Chrome、Firefox和Internet Explorer在启动XHR时拒绝使用它 最详细的错误消息来自Firefox: 无法加载XMLHttpRequest。“Access Control Allow Origin”标头包含多个值“,”,但只允许一个值。因此,不允许访问源“” 那个错误使我非常困惑。这就像“嘿,你是A,想和B说话,但B只接受A,B,所以你不能和B说

我想通过XMLHTTP请求(XHR、AJAX)访问第三方资源(在另一个域上)

我按如下方式设置CORS(两侧-目标和原点):

Chrome、Firefox和Internet Explorer在启动XHR时拒绝使用它

最详细的错误消息来自Firefox:

无法加载XMLHttpRequest。“Access Control Allow Origin”标头包含多个值“,”,但只允许一个值。因此,不允许访问源“”

那个错误使我非常困惑。这就像“嘿,你是A,想和B说话,但B只接受A,B,所以你不能和B说话”。WTF


如何正确实施CORS(访问控制允许原点)?

访问控制允许原点
仅接受
*
单个原点

如果要支持多个来源,但不是所有来源,则必须:

  • 检查它是否在您的可接受来源列表中

  • 将其放入
    访问控制允许原点
    响应标题中

  • 您对资源使用的服务器端语言是什么?(ajax调用的服务)@Pete:双方都只是简单的静态HTML文件。啊,我的MVC服务有这个问题,必须将多个域的
    访问控制允许源代码
    更改为
    *
    ,然后在处理数据后只进行域检查,但由于您的是纯html,我不确定如何允许多个域
    访问控制允许源代码:
    不受火狐。Firefox要求源代码完全匹配。请参阅:@Pete该站点表示当使用
    访问控制允许凭据时,Firefox中不支持
    访问控制允许来源:
    (即)。这并不意味着Firefox通常不允许将
    *
    作为允许的CORS来源。(该网站特别关注如何为WebDAV设置CORS,这需要经过认证的请求。)您可以安全地继续使用
    访问控制允许源代码:
    通常。您指的是由服务器动态生成
    访问控制允许源代码
    Access-Control-Allow-Origin: http://www.example.com, https://www.example.com, http://www.example.org, https://www.example.org
    Access-Control-Allow-Methods: GET, POST, HEAD, OPTIONS