无法让jQuery ajax方法起作用

时间:2013-07-21 00:28:59

标签: jquery jquery-load jquery-get

我有两个名为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都在相同的文件夹中!我究竟做错了什么?!请帮忙

干杯!

1 个答案:

答案 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进行测试。这为您提供了更准确的安全图片。