仅限Chrome中的错误:XMLHttpRequest无法加载文件网址请求的资源上没有"Access-Control-Allow-Origin"标头

Sha*_*kar 16 javascript google-chrome

我正在关注一本书的例子,因此代码非常简单.

这是代码:

jQuery.get("ajax_search_results.php",
           { s:search_query },
           write_results_to_page, "html");
Run Code Online (Sandbox Code Playgroud)

代码是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>
Run Code Online (Sandbox Code Playgroud)

这在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.
Run Code Online (Sandbox Code Playgroud)

你能帮忙找出问题所在吗?

小智 5

如果您在使用Google Chrome时遇到以下问题,请执行以下操作:

[XMLHttpRequest无法加载文件.收到无效回复.因此不允许原点'null'访问.]

然后按照以下步骤创建批处理文件:

在桌面中打开记事本.

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

启动"chrome""C:\ Program Files(x86)\ Google\Chrome\Application\chrome.exe" - allow-file-access-from-files退出

  1. 注意:在上一行中,将完整的绝对地址替换为chrome安装的位置.[要找到它...右键点击你的chrome.exe链接或图标的快捷方式,然后单击属性和复制粘贴的目标链接 ] [请记住:开始文件在同一行,与出口在另一条线路按enter]
  2. 将文件另存为fileName.bat [非常重要:.bat ]
  3. 如果要稍后更改文件,请右键单击.bat文件,然后单击编辑.修改后,保存文件.

这会做什么?它将打开具有文件访问权限的Chrome.exe.现在,从计算机的任何位置,使用Google Chrome浏览您的html文件.我希望这将解决XMLHttpRequest问题.

请注意:只需使用快捷方式bat文件即可在需要时打开Chrome.告诉我它是否解决了你的问题.我有类似的问题,我以这种方式解决了它.谢谢.

  • 注意:出于安全原因,应该仅使用此****进行本地测试.http://www.chrome-allow-file-access-from-file.com/ (3认同)

Dam*_*nic 1

据推测,这是因为您试图发出跨域请求,或者已澄清的内容。您可以尝试添加header('Access-Control-Allow-Origin: *');到请求的文件中。

event-source另外,在使用IE 8-10的情况下,服务器发送的事件实现有时会出现这样的问题XHR polling(这让我第一次感到困惑)。