0

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

干杯!

4

1 回答 1

0

引用此:Access-Control-Allow-Origin 不允许 Origin null

Origin null 是本地文件系统,因此这表明您正在加载通过 file:/// URL 执行加载调用的 HTML 页面(例如,只需在本地文件浏览器或类似文件中双击它)。不同的浏览器采用不同的方法将同源策略应用于本地文件。

我的猜测是您正在使用 Chrome 看到这个。Chrome 将 SOP 应用于本地文件的规则非常严格,它甚至不允许从与文档相同的目录加载文件。歌剧也是如此。其他一些浏览器(例如 Firefox)允许对本地文件进行有限访问。但基本上,将 ajax 与本地资源一起使用不会跨浏览器工作。

如果您只是在本地测试您将真正部署到 Web 的东西,而不是使用本地文件,请安装一个简单的 Web 服务器并通过 http:// URL 进行测试。这为您提供了更准确的安全图片。

于 2013-07-21T00:43:26.140 回答