• 企业400电话
  • 网络优化推广
  • AI电话机器人
  • 呼叫中心
  • 全 部 栏 目

    网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    ajax回调函数参数传递正确方法
    POST TIME:2021-10-18 06:19
    属性方法是可以带参数:
    复制代码 代码如下:

    function ClassX(name) {
    this.name = name;
    ClassX.prototype.show = function (param) {
    alert(this.name + " " + param);
    };
    }
    var o = new ClassX("name");
    o.show("param");//name param


    但是,上面是虽然是直接在函数签名中定义了参考,如果不是自己调用o.show('param')时,而是通过其他函数回调传入时,就不一定好使了,因为别人在调用此方法时不一定给你传入此参,比如在使用ajax时

    request.onreadystatechange=function(param){...}



    request.onreadystatechange=callBack;function callBack(param){...}

    时就不好使了,因为此时ajax根本就没有给你传递param参数,正确做法形如:
    复制代码 代码如下:

    //request.onreadystatechange = orgEval;//错误作法

    //request.onreadystatechange = function (request, pOrgName) {//错误作法
    // orgEval(request, pOrgName);
    //};

    //...
    request.onreadystatechange = function () {//正确作法
    orgEval(request, pOrgName);//在匿名函数内调用回调实现,并直接传入参数,这里用到了JavaScript的闭包性质
    };
    //...

    function orgEval(req, orgName){
    //...
    }

    这样通过在匿名函数内调用回调实现函数,并且直接传入参数即可。

    ajax传递参数给onreadystatechange的回调函数

    这几天开始学习ajax,其中自己做试验页面时有了传参数给XMLHttpRequest.onreadystatechange的回调函数这个需求。如是baidu了下,发现说到这个的人不少啊。搜来的办法大概是这样:

    xmlHttp.onreadystatechange=function(){callback(a,b);};

    其中就传递了a和b两个参数。

    后来我又自己发现了个方法,方法知道的人肯定很多,不过我在baidu上没搜到,这里就写出来,推广下咯。

    复制代码 代码如下:

    xmlHttp.a=a;
    xmlHttp.b=b;
    xmlHttp.onreadystatechange=callback;
    .
    .
    function callback()
    {
        if(this.readyState==4)
        {
            a=this.a;
            b=this.b;
        .
        }
    }

    也就是给xmlHttp对象增加两个属性,在回调函数中直接用this调用那两个属性。

    另外说点自己的小经验,xmlHttp最好要写成全局变量,我一开始发现总有些请求没达到目的。后来才发现是把xmlHttp写在了一个函数里面,当那个函数运行完了,xmlHttp生命周期也结束了。这样有些请求在生命周期结束之前就实现了,而有些请求就没了。

    您可能感兴趣的文章:
    • jQuery Ajax Post 回调函数不执行问题的解决方法
    • Javascript基于AJAX回调函数传递参数实例分析
    • ajax回调函数中使用$(this)取不到对象的解决方法
    • ajax请求返回的数据看不到回调函数没有执行也没报错
    • 解决ajax回调函数返回的字符串乱码问题
    • ajax异步回调函数中给外部变量赋值的问题探讨
    • ajax JSONP请求处理回调函数jsonpCallback区分大小写
    • jQuery Tips 为AJAX回调函数传递额外参数的方法
    • JQuery中使用Ajax赋值给全局变量失败异常的解决方法
    • ajax给全局变量赋值问题解决示例
    • JQuery中使用Ajax赋值给全局变量异常的解决方法
    • jquery ajax修改全局变量示例代码
    • Ajax获取回调函数无法赋值给全局变量的问题
    上一篇:Ajax中数据传递的另一种模式 javascript Object Notation思想(JSON)
    下一篇:ajax(iframe)无刷新提交表单、上传文件
  • 相关文章
  • 

    关于我们 | 付款方式 | 荣誉资质 | 业务提交 | 代理合作


    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信