博客中想要实现个功能获取文章评论数目,我使用了多说的评论系统,相关的数据都需要在他服务器上获取。而多说给出的通用代码获取到的是“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数据,而多说也是提供了jsonp的api的。
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