zoukankan      html  css  js  c++  java
  • 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 获取。


  • 相关阅读:
    js简单排序
    js希尔排序
    js直接插入排序
    大数运算
    IOC和AOP的理解 (持续更新)
    频发事件的缓存技巧
    执行上下文深入解析(Execution Context)
    二分
    HDU 3790 最短路径问题 (双重权值)
    浅谈Targan算法
  • 原文地址:https://www.cnblogs.com/hdchangchang/p/3965348.html
Copyright © 2011-2022 走看看