关于新浪微博API的ajax跨域问题

最近工作有个微博营销的需求需调用新浪微博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 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/liangge0218/archive/2013/03/26/3292367.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值