我有两个名为host.html和test.html的html文件我试过这么努力,但我无法加载test.html文件作为host.html中mydiv的内容我尝试过:
$("#myDiv").load("test.html");
但它失败了;然后我尝试使用以下ajax方法来获取文件:
$.ajax({
type: "GET",
url: "test.html",
error: function (xhr, statusText) { alert("Error: " + statusText); },
success: function (msg) { alert("Success: " + msg); }
});
但遗憾的是我总是遇到错误! host.html和test.html都在相同的文件夹中!我究竟做错了什么?!请帮忙
干杯!
答案 0 :(得分:0)
引用此句:Origin null is not allowed by Access-Control-Allow-Origin
Origin null是本地文件系统,因此建议您通过file:/// URL加载执行加载调用的HTML页面(例如,只需在本地文件浏览器中双击它或类似)。不同的浏览器采用不同的方法将同源策略应用于本地文件。
我的猜测是你使用Chrome看到这个。 Chrome将SOP应用于本地文件的规则非常严格,甚至不允许从与文档相同的目录中加载文件。 Opera也是如此。其他一些浏览器(如Firefox)允许对本地文件的有限访问。但基本上,使用带有本地资源的ajax不会跨浏览器工作。
如果您只是在本地测试一些您将真正部署到Web上的内容,而不是使用本地文件,请安装一个简单的Web服务器并通过http:// URL进行测试。这为您提供了更准确的安全图片。