jquery 实现的josnp

参考:http://www.cnblogs.com/dudu/archive/2012/12/04/jquery-jsonp-attention.html

一个$.ajax 实例:

<script type="text/javascript">
     jQuery(document).ready(function(){
          $.ajax({
             type  : "get",
             async : false,
             url   : "ajax.ashx",
             dataType : "jsonp",
             jsonp : "callbackparam",//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(默认为:callback)
             jsonpCallback :"success_jsonpCallback",//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名
             success : function(json){
                 alert(json);
                 alert(json[0].name);
             },
             error : function(){
                 alert('fail');
             }
         });
         var a = "firstName Brett";
         alert(a);
     });
</script>

上面用法有两个限制:

1.只能发 get 请求,get 请求的弊端是请求长度有限制

2.不会触发 $.ajax 的error callback

解决方法:

使用一个 jquery 插件 —— jquery-jsonp,https://github.com/jaubourg/jquery-jsonp

var originImgSrc = 'cnbogs-logo.gif';
$.jsonp({
    url   : '',
    data  : { imgSrc: originImgSrc },
    callbackParameter : "callback",
    success : function (newImgSrc, textStatus, xOptions) {
        console.log(xOptions.data.imgSrc);
    },
    error : function (xOptions, textStatus) {
    }
});

第1个需要注意的地方是 callbackParameter,如果没有专门的 callback 函数,一定要写上 "callback";

第2个需要注意的地方是在 success 回调函数中,直接通过变量名 originImgSrc 得到的是 undefined,需要通过 xOptions.data.imgSrc 获取。


转载于:https://www.cnblogs.com/hdchangchang/p/3965348.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值