使用CORS但没有任何帮助我

时间:2017-05-01 09:22:40

标签: javascript php jquery ajax google-chrome

我真的研究了几个小时,但还没有找到任何解决方案。我想通过jQueryajax从其他服务器获取一些数据。我在Chrome控制台中收到此错误消息:

  

XMLHttpRequest无法加载https://editeddomain.com//somedata.json。没有   请求中存在“Access-Control-Allow-Origin”标头   资源。因此不允许来源“http://localhost:63342”   访问。响应的HTTP状态代码为401。

这是我的设置:

  • PHPStorm 2016.1
  • jQuery v3.2.1
  • Google Chrome
  • Fedora 25

这是我已经尝试过的,我仍然得到同样的错误:

  • <?php header('Access-Control-Allow-Origin: *'); ?>
  • 使用--disable-web-security
  • 启动Chrome
  • 安装了Chrome扩展程序Allow-Control-Allow-Origin: *
  • 安装了Chrome扩展程序JetBrains IDE Support并添加了相似内容 JetBrains推荐http://*/*

所以没有人帮助我,我仍然看到错误信息。

PS:这个工具仅供我使用,这就是为什么它不会,也永远不会安装在与我的PHPStorm环境不同的网络服务器上

3 个答案:

答案 0 :(得分:0)

对于chrome,除了--disable-web-security:

外,还要添加其他参数

- 用户数据目录

这是Google稍后介绍的。

此外,为此,请确保关闭所有Chrome实例,然后打开包含其中参数的实例。它只适用于那里打开的第一个标签。它会有一个黄色条,表示您正在使用不安全的标签。

答案 1 :(得分:0)

CORS的问题在于每个浏览器都需要不同的解决方案。到目前为止,使用jsonp似乎更好,直到他们统一CORS。

答案 2 :(得分:0)

您需要将此标头添加到“json”文件中。所以在你的例子中:

https://editeddomain.com//somedata.json&lt; - 此响应应具有正确的cors标头。您是否使用PHP生成json文件的内容并将其返回?如果是,请添加

<?php header('Access-Control-Allow-Origin: *'); ?>

到这个api。

如果它只是一个纯文件,你需要在apache中添加标题,例如在htaccess中(在同一个文件夹中):

Header add Access-Control-Allow-Origin "*"