跨服务器获取json数据

博客中想要实现个功能获取文章评论数目,我使用了多说的评论系统,相关的数据都需要在他服务器上获取。而多说给出的通用代码获取到的是“xx条评论”,我想到的只是数字,不想要“条评论”三个字,这样就需要使用多说的api了。

通过api,自己写jquery获取多说服务器返回的json,但是获取失败。代码如下:

<script type="text/javascript">

$(function () {

$.getJSON("http://api.duoshuo.com/threads/counts.jsonp?short_name=vandend&threads=leavemessage", function (data) {

        alert(data);

    });

});

</script>

上面获取到的都是null,原以为是自己对json格式不熟,代码方式写不对,后来经人家指点,才知道跨服务器获取json数据和获取本地json数据操作不一样,有点麻烦。

网上查找了相关资料,明白了应该使用jsonp来获取json数据,而多说也是提供了jsonpapi的。

jsonp会在提交的url上写入回调函数,然后通过回调函数获取json数据。

查阅资料后代码改为下面的:

<script type="text/javascript">

$(function () {

    $.ajax({

        url: 'http://api.duoshuo.com/threads/counts.jsonp?short_name=vandend&threads=leavemessage',

        type: "GET",

        dataType: "jsonp",

        jsonpCallback: "localJsonpCallback"

    });

});

function localJsonpCallback(json) {

    if (json.code==0) {

$("#guestbook_count").html(json.response.leavemessage.comments);

    }

    else {

        $("#guestbook_count").html("xx");

    }

}

</script>

 

参考链接:

asp.net mvc3 实现 jsonp

http://www.cnblogs.com/wintersun/archive/2012/05/25/2518572.html

<<返回列表