Error in Chrome only: XMLHttpRequest cannot load file URL No 'Access-Control-Allow-Origin' header is present on the requested resource,如何解决?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (60)

我正在学习一个书的例子,因此代码非常简单。

这是代码:

jQuery.get("ajax_search_results.php",
           { s:search_query },
           write_results_to_page, "html");

代码是ajax_search_results.php如下:

<div id="ajax_search_results">
 <ul>
 <li><a href="#">First result</a></li>
 <li><a href="#">Second result</a></li>
 <li><a href="#">Third result</a></li>
 <li><a href="#">More...</a></li>
 </ul>
</div>

这在Firefox中的工作方式与预期的一样。但是在Chrome中,我可以看到JS控制台中的错误:

XMLHttpRequest cannot load 
file:///C:/xampp/xampp/htdocs/snk/ajax_search_results.php?s=keyword. 
No 'Access-Control-Allow-Origin' header is present on the requested resource.
Origin 'null' is therefore not allowed access.
提问于
用户回答回答于

把这个加到文件的顶部,

header('content-type: application/json; charset=utf-8');
header("access-control-allow-origin: *");
用户回答回答于

GoogleChrome时如下所示:

[XMLHttpRequest cannot load file. Received an invalid response. Origin 'null' is therefore not allowed access.]

然后通过以下步骤创建一个批处理文件:

  1. 只需将以下内容复制并粘贴到当前打开的记事本文件中:

启动“Chrome”C:\ProgramFiles(X86)\google\Chrome\Application\chrome.exe“--允许文件访问文件退出

  1. 在上一行中,用铬安装的位置替换完整的绝对地址。右击你的chrome.exe链接。
  2. 将文件保存为fileName.bat。
  3. 如果以后要更改该文件,请右键单击.bat文件,然后单击“编辑”。修改后,保存文件。

这能做什么?它将打开具有文件访问权限的chrome.exe。现在,从你电脑的任何位置,用谷歌Chrome浏览你的html文件。

扫码关注云+社区