【问题标题】:Can't get jQuery ajax method to work无法让 jQuery ajax 方法工作
【发布时间】:2013-07-21 00:28:58
【问题描述】:

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

干杯!

【问题讨论】:

  • 刚刚检查了控制台。它说 Access-Control-Allow-Origin 不允许 Origin null。我如何让它工作。 .

标签: jquery jquery-load jquery-get


【解决方案1】:

引用这个:Origin null is not allowed by Access-Control-Allow-Origin

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

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

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

【讨论】:

  • 在您发表评论之前从同一个链接解决了它,但在这里您将其标记为答案 :) 谢谢您的宝贵时间。 .我没有设置 localhost 来运行 host.html!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-07
相关资源
最近更新 更多