使用getScript从CrossDomain解析JSON文件



我有一个很好的本地脚本:

$.getJSON("jsonfile.js",function(item) {    
  $.each(item.terra_nova_feed, function(i,item) {
    // functions and varibles//
  });
});

在本地运行良好。当JSON文件移动到另一个域…什么都没有。我知道我应该使用getScript来拉入JSON文件。然而,我如何把数据拉到现有的脚本?

尝试$.ajax()函数,使用crossDomain:true参数。它本质上使用JSONP(填充JSON),将数据封装在回调中。

$.ajax({
    url: "http://www.otherdomain.com/jsonfile.js",
    crossDomain:true,
    type:'get',
    dataType:'json',
    success: function(data) {    
        $.each(data.terra_nova_feed, function(i,data) {
            // functions and varibles//
        });
    }
});

简短的回答是你真的做不到。也就是说,如果您可以控制其他域返回的内容,则可以使用称为JSON-P的东西。使用JSON-P,您基本上是跨域调用脚本文件——脚本需要以这样一种方式返回,即它调用页面上的方法。jQuery负责调用页面上的管道,但是您仍然需要确保使用脚本的服务器正确地发出内容。

问题是$. getjson()通常不与jsonp工作(这意味着它不工作跨域,除非一些特殊情况,如服务器传递它的显式支持),但在你的情况下,我认为你应该使用$.ajax()并设置crossDomain选项为真。

相关内容

  • 没有找到相关文章

最新更新