无法从另一个域获取getJSON数据

时间:2012-09-18 13:07:51

标签: jquery json getjson

$.getJSON("http://pipes.yahoo.com/pipes/pipe.run?_id=UtVVPkx83hGZ2wKUKX1_0w&_render=json&_callback=?",
    function(data) {
        $.each(data.value.items, function(Id,item) {
        $("<div/>").text(item.title).appendTo("#data");
    });
});
$.getJSON("http://api.anywayanyday.com/api/NewRequest/?Route=2406MOWLON&AD=1&CN=0&CS=E&Partner=testapic&_Serialize=JSON&jsoncallback=?",
    function(data) {
        $.each(data.value.items, function(Id,item) {
        $("<div/>").text(item.id).appendTo("#data2");
    });
});

第一个json工作得很好,但是从任何日子都没有,这可能是什么问题? 谢谢大家的帮助!

3 个答案:

答案 0 :(得分:1)

使用callback代替jsoncallback(回调的参数取决于您正在访问的服务)。此外,看起来数据看起来像这样:

  

{ “ID”: “9G8jJaYr39Qh18”, “错误”:空}

并不在收藏中。以下代码适用于我:

$.getJSON("http://api.anywayanyday.com/api/NewRequest/?Route=2406MOWLON&AD=1&CN=0&CS=E&Partner=testapic&_Serialize=JSON&callback=?", function(data) {
    $("#data2").text(data.Id);
});

示例: http://jsfiddle.net/WtxS3/

答案 1 :(得分:0)

你必须使用jsonp作为类型和URL中的回调。然而,并非所有服务实际上都支持它。服务器的响应必须如下:

callback(JSON here)

干杯!

答案 2 :(得分:0)

嗯,它可以工作但你没有正确处理数据。将http://api.anywayanyday.com/api/NewRequest/?Route=2406MOWLON&AD=1&CN=0&CS=E&Partner=testapic&_Serialize=JSON&jsoncallback=?放入浏览器即可获得回复。

还需要使用$.each(data.Id),而不是$.each(data.value.items)