【问题标题】:The 'Access-Control-Allow-Origin' header has a value that is not equal to the supplied origin“Access-Control-Allow-Origin”标头的值不等于提供的原点
【发布时间】:2016-10-28 19:58:17
【问题描述】:

我正在尝试使用 ajax 登录 API,但出现此错误:

XMLHttpRequest 无法加载。 'Access-Control-Allow-Origin' 标头 具有不等于提供的原点的值。起源 'http://localhost' 因此不允许访问。

我在整个互联网上阅读了有关此错误的所有信息,并且尝试了所有可以在网上找到的解决方案。我根据这里的 CORS 说明修改了 .htaccess 和 apache httpd 配置文件:http://enable-cors.org/server_apache.html

Access-Control-Allow-Origin: *

似乎没有任何效果。如果你们能帮我解决这个问题,我将不胜感激。谢谢!

【问题讨论】:

    标签: php ajax api cors


    【解决方案1】:

    您必须将 Access-Control-Allow-Origin 标头设置为 * 或指定值 http://localhost

    您可以通过以下方式做到这一点:

    1- 你的代码

    2- .htaccess 文件

    3- 服务器配置(需要重启网络服务器)

    这里是显示如何在 apache 上执行此操作的链接

    http://access-control-allow-origin-guide.com/enable-cors-on-apache-linux/

    【讨论】:

    • 感谢您的评论,但我找不到任何方法。最后,我决定用 curl 代替 ajax。
    • 将 Access-Control-Allow-Origin 标头设置为 * 不是不安全的?
    【解决方案2】:

    作为增加的浏览器安全性,除非 API 在返回响应标头中允许跨浏览器来源,否则无法解决此问题。

    浏览器阻止了它,有一个plugin 允许 chrome 但依赖浏览器插件来允许最终用户请求是不现实的,

    尝试联系 API 提供商,看看他们是否可以考虑更新响应中的标头。

    这是一个 CORS 问题: https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS

    【讨论】:

      【解决方案3】:

      我使用 htaccess 文件在不同的主机中加载 JSON 数据,它的工作原理但是

      例如,它必须放在我们的虚拟主机的公共 html 根目录中

      上传 .htaccess 到 --> (https://freehostingsomewhere.com/)

      然后在 .htaccess 中

      <FilesMatch "\.(ttf|otf|eot|woff|jpg|png|jpeg|gif|js|json|html|css)$">
        <IfModule mod_headers.c>
          Header set Access-Control-Allow-Origin "http://localhost"
        </IfModule>
      </FilesMatch>
      

      在这里我使用http://localhost 进行开发,它可以工作,

      也许如果我有另一个虚拟主机只需将其更改为该网址,我稍后会尝试(可以,我已经尝试过):p

      这只是为了更清楚的解释

      干杯:p

      【讨论】:

        【解决方案4】:

        您的请求是否使用了 cookie 或授权?

        如果您将其配置为“使用凭据”完成,请检查客户端的 ajax 调用

        .withCredentials = true;
        

        如果是,通配符 (*) 将不起作用,您需要提供确切的主机作为 Access-Control-Allow-Origin 的值。

        参考this stack overflow answerMozilla Documentation on CORS

        【讨论】:

          猜你喜欢
          • 2020-11-12
          • 2019-09-17
          • 2020-09-30
          • 2019-04-04
          • 1970-01-01
          • 2016-01-11
          • 2020-09-21
          • 2013-08-30
          • 2019-06-19
          相关资源
          最近更新 更多