【问题标题】:JQuery get() or getJSON only work for local filesJQuery get() 或 getJSON 仅适用于本地文件
【发布时间】:2013-08-12 15:17:49
【问题描述】:

我正在尝试从我的服务器加载一个 test.json 文件。尝试加载该文件的 index.html 位于另一台服务器上(实际上它是一个本地文件)。

$url = 'test.json';    
$.getJSON($url, function(data) {
    for (var i = 0, len = data.length; i < len; i++) {
             //some code
    }
});

完美运行。 但是当我设置$url = 'http://simonappelt.de/test.json' 时,它什么也没做。 我还尝试了 get() 函数从我的服务器获取文件,但它们接缝什么都不加载。

谢谢西蒙

【问题讨论】:

  • “它什么也没做” 我非常怀疑这一点。你检查控制台了吗?您应该会看到一个描述性很强的错误。
  • $.getJSON not working的可能重复

标签: jquery get getjson


【解决方案1】:

通常,您只能在与您的脚本相同的域和协议上发出 AJAX 请求(这就是 $.getJSON 的含义)。如果要进行跨域请求,则必须使用JSON-P support of $.getJSON,并将数据包装在回调调用服务器端,由查询字符串参数?callback确定。

【讨论】:

    【解决方案2】:

    来自jQuery $.getJSON documentation....

    由于浏览器安全限制,大多数“Ajax”请求都受制于 同源政策;请求无法成功检索 来自不同域、子域或协议的数据。

    【讨论】:

      【解决方案3】:

      Ajax 请求只能针对与当前文档相同的域。 ajax url 应该是本地的。可以在http://www.webreference.com/programming/javascript/understanding-ajax/index.html 阅读更多相关信息。

      【讨论】:

        猜你喜欢
        • 2012-01-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-05
        • 1970-01-01
        • 2013-07-30
        • 1970-01-01
        相关资源
        最近更新 更多