【问题标题】:XMLHttpRequest cannot load file:///C:/Users/hamma/Desktop/rao.htmlXMLHttpRequest 无法加载 file:///C:/Users/hamma/Desktop/rao.html
【发布时间】:2016-04-04 15:47:25
【问题描述】:
<!DOCTYPE html>
<html>
<head>
<script src="jquery-2.1.4.js"></script>
<script>
$(document).ready(function(){
    $("button").click(function(){
        $("#div1").load("rao.txt");
    });
});
</script>
</head>
<body>

<div id="div1"><h2>Let jQuery AJAX Change This Text</h2></div>

<button>Get External Content</button>

</body>
</html>

我想用一些文本或其他网页更改 div1 的内容,而不重新加载默认页面。

我在控制台中收到以下错误消息:

XMLHttpRequest 无法加载 file:///C:/Users/hamma/Desktop/rao.html。跨源请求仅支持协议方案:http、data、chrome、chrome-extension、https、chrome-extension-resource。

【问题讨论】:

  • 控制台可能有帮助?
  • XMLHttpRequest 无法加载文件:///C:/Users/hamma/Desktop/rao.html。跨源请求仅支持协议方案:http、data、chrome、chrome-extension、https、chrome-extension-resource。
  • 寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定问题或错误以及重现它所需的最短代码在问题本身。没有明确问题陈述的问题对其他读者没有用处。
  • 您不能向本地文件系统发出 AJAX 请求,您必须设置一个网络服务器,托管在某处或本地计算机上。
  • 阅读同源策略和跨源请求共享。

标签: javascript jquery html cors


【解决方案1】:

根据你的控制台输出:

XMLHttpRequest 无法加载 file:///C:/Users/hamma/Desktop/rao.html。跨源请求仅支持协议方案:http、data、chrome、chrome-extension、https、chrome-extension-resource。

这意味着您正在尝试在没有服务器的情况下运行文件,即file:///[...],出于安全原因,您不能运行这样的 AJAX 请求。

您需要设置服务器并通过该服务器运行页面以发送请求。

更多帮助

如果您使用的是 Chrome,请尝试this

阅读材料

Same-Origin-Policy

CORS

【讨论】:

  • 正如@JonathonReinhart 对您的问题所评论的那样,由于同源政策,您无法向 Google 提出请求。
  • 那么我如何在 div 中加载页面?无需重新加载默认页面!
【解决方案2】:

将文件“rao.txt”复制到您的项目文件夹中。设置本地服务器。 使用 wamp/xamp 设置本地服务器。像这样访问文件 http://localhost/project_folder/path_to_rao.txt

【讨论】:

    猜你喜欢
    • 2020-12-25
    • 1970-01-01
    • 2020-06-15
    • 2018-07-21
    • 2018-10-30
    • 2011-11-01
    • 1970-01-01
    • 2023-04-10
    相关资源
    最近更新 更多