我真的研究了几个小时,但还没有找到任何解决方案。我想通过jQuery
和ajax
从其他服务器获取一些数据。我在Chrome控制台中收到此错误消息:
XMLHttpRequest无法加载https://editeddomain.com//somedata.json。没有 请求中存在“Access-Control-Allow-Origin”标头 资源。因此不允许来源“http://localhost:63342” 访问。响应的HTTP状态代码为401。
这是我的设置:
这是我已经尝试过的,我仍然得到同样的错误:
<?php header('Access-Control-Allow-Origin: *'); ?>
--disable-web-security
Allow-Control-Allow-Origin: *
JetBrains IDE Support
并添加了相似内容
JetBrains推荐http://*/*
所以没有人帮助我,我仍然看到错误信息。
PS:这个工具仅供我使用,这就是为什么它不会,也永远不会安装在与我的PHPStorm环境不同的网络服务器上
答案 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 "*"