XMLHttpRequest 无法加载 file:///C:/Users/hamma/Desktop/rao.html

Posted

技术标签:

【中文标题】XMLHttpRequest 无法加载 file:///C:/Users/hamma/Desktop/rao.html【英文标题】:XMLHttpRequest cannot load 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 的内容,而不重新加载默认页面。

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

。跨源请求仅支持协议方案: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 请求,您必须设置一个网络服务器,托管在某处或本地计算机上。 阅读同源策略和跨源请求共享。 【参考方案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

【讨论】:

以上是关于XMLHttpRequest 无法加载 file:///C:/Users/hamma/Desktop/rao.html的主要内容,如果未能解决你的问题,请参考以下文章

xmlhttprequest 无法加载文件

XMLHttpRequest 无法加载。?

XMLHttpRequest 无法以角度加载

无法通过 xmlhttprequest 加载本地 xml 文件

XMLHttpRequest 无法加载资源

XMLHttpRequest 无法为 instagram 加载