我有一个jQuery加载脚本,它奇怪地适用于托管在一个位置而不是另一个位置的文本文件。例如,这个:
$(document).ready(function () {
$("button").click(function () {
$("#div10").load("https://dl.dropboxusercontent.com/u/29635158/replace.txt", function () {
alert("Done Loading");
});
});
});
...工作正常,可以从我的Dropbox加载.txt文档。
但是这个:
$(document).ready(function () {
$("button").click(function () {
$("#div10").load("http://hs.biocanvas.net/files/replace.txt", function () {
alert("Done Loading");
});
});
});
...与具有完全相同的.txt
文件的完全相同的脚本,除了.txt
文件现在托管在不同的服务器上(并且在脚本中相应地更改了URL)。但是,.txt
文件未加载到目标div中。
如果您将复制 + 粘贴其网址放入浏览器,则两个.txt
文件都是可读的。
有什么想法?谢谢你的帮助。
答案 0 :(得分:2)
问题可能是跨域请求。 如果您使用的是PHP或其他服务器技术,则需要在应用程序中允许权限,但如果您使用的是phonegap,则不需要。
Access-Control-Allow-Origin:http://example.org/
或者,如果它是公共资源:
Access-Control-Allow-Origin:*
作为参考,你可以阅读这篇文章: HTTP access control (CORS) Developer mozilla
答案 1 :(得分:0)
有点晚 - 但只是为了确认user3294396的答案,如果你运行代码并查看控制台,你可能会看到如下错误:
XMLHttpRequest cannot load http://hs.biocanvas.net/files/replace.txt. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.
因此您需要在服务器上设置显式访问权限。