3089589

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

最近工作有个微博营销的需求需调用新浪微博API接口,碰到了不少问题,一一总结

1.利用ajax调用新浪微博API接口牵扯到ajax跨域的问题,而ajax跨域的问题有几种解决方案,如jsonp、动态script标签、iframe,各种方案的要求与适应场景各不相同,网上一搜一大把。在新浪微博的API说明中,只说明了返回的数据类型,未说明是否支持jsonp方法回写,其实新浪微博API是支持jsonp回写的,如用jquery发ajax请求

 

 

$.ajax({
    // Weibo API.
    url: "https://api.weibo.com/2/users/show.json",
    type: "GET",
    dataType: "jsonp",
    data: {
        source: "XXX",
        uid: "XXX"
    },
    success: function(data, textStatus, xhr){
        alert(data.data.screen_name)
    }
})
 

通过抓包工作可以抓到发出的请求为

 

 

https://api.weibo.com/2/users/show.json?callback=jsonp1337331494998&source=XXX&uid=XXX
 

如指明了dataType : jsonp的话,jquery额外加了个callback参数,这就是jsonp的风格,在此种方式下,请求不是以ajax方式发出去的,内部应该是通过动态生成script标签发出跨域请求的,在回调方法中获取返回状态码是获取不到的,如success方法中的textStatus始终为null,用抓包工具可以获取到该API返回了与API说明稍微不一样的数据

 

 

try{jsonp1337331494998({"code":1,"data":{"id":XXX,"idstr":"XXX","screen_name":"XXX","name":"XXX","province":"44","city":"3","lo...
posted on 2013-03-26 09:25  liangge0218  阅读(601)  评论(0)    收藏  举报