jQuery加载不能使用某些.txt文件

时间:2014-02-20 21:10:30

标签: javascript jquery

我有一个jQuery加载脚本,它奇怪地适用于托管在一个位置而不是另一个位置的文本文件。例如,这个:

JSFiddle

$(document).ready(function () {
    $("button").click(function () {
       $("#div10").load("https://dl.dropboxusercontent.com/u/29635158/replace.txt", function () {
          alert("Done Loading");
       });
    });
});

...工作正常,可以从我的Dropbox加载.txt文档。

但是这个:

JSFiddle

$(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文件都是可读的。

有什么想法?谢谢你的帮助。

2 个答案:

答案 0 :(得分:2)

问题可能是跨域请求。 如果您使用的是PHP或其他服务器技术,则需要在应用程序中允许权限,但如果您使用的是phonegap,则不需要。

  

Access-Control-Allow-Origin:http://example.org/

或者,如果它是公共资源:

  

Access-Control-Allow-Origin:*

作为参考,你可以阅读这篇文章: HTTP access control (CORS) Developer mozilla

AJAX - Introducing Cross-domain Request (XDR)

答案 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. 

因此您需要在服务器上设置显式访问权限。