问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何将Ajax回调获得的数据传递给其它函数

发布网友 发布时间:2022-04-25 15:43

我来回答

5个回答

懂视网 时间:2022-04-22 21:50

这篇文章主要介绍了关于ajax回调函数参数传递正确方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

ajax回调函数参数传递正确方法,很多朋友习惯的写错了,这里简单的小结下。

属性方法是可以带参数:

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生命周期也结束了。这样有些请求在生命周期结束之前就实现了,而有些请求就没了。

热心网友 时间:2022-04-22 18:58

ajax成功回调的函数返回的数据在回调函数的参数里,直接将参数赋值给其他变量就可以实现回调获得的数据传递给函数外的变量,进而可以供其他的函数使用该数据。

工具原料:编辑器、jquery

1、实现的最简单的思路之一是在函数外定义一个变量,在ajax的成功回调函数中将回调函数的参数赋值给该变量,然后即可实现在其他函数里使用该变量即ajax回调返回的数据。

2、代码的示例如下:

script>
var value='';
$.ajax({
type:"post",
url:"test.php",
async:true
success:function(data){
value=data;//返回的数据赋值给全局变量
    }
    });
function(){
console.log(value);//使用该变量即ajax回调返回的数据
}
</script>

3、当然还可以使用回调函数里调用其他的函数,返回结果以参数形式传给其他的函数等方案。

热心网友 时间:2022-04-22 20:16

回调函数

如果要处理 $.ajax() 得到的数据,则需要使用回调函数:beforeSend、error、dataFilter、success、complete。

beforeSend

在发送请求之前调用,并且传入一个 XMLHttpRequest 作为参数。

error

在请求出错时调用。传入 XMLHttpRequest 对象,描述错误类型的字符串以及一个异常对象(如果有的话)

dataFilter

在请求成功之后调用。传入返回的数据以及 "dataType" 参数的值。并且必须返回新的数据(可能是处理过的)传递给 success 回调函数。

success

当请求之后调用。传入返回后的数据,以及包含成功代码的字符串。

complete

当请求完成之后调用这个函数,无论成功或失败。传入 XMLHttpRequest 对象,以及一个包含成功或错误代码的字符串。

var aj = $.ajax( {    
    url:'proctManager_reverseUpdate',// 跳转到 action    
    data:{    
             selRollBack : selRollBack,    
             selOperatorsCode : selOperatorsCode,    
             PROVINCECODE : PROVINCECODE,    
             pass2 : pass2    
    },    
    type:'post',    
    cache:false,    
    dataType:'json',    
    success:function(data) {  //这里的data 就是读取的数据   
        if(data.msg =="true" ){    
            // view("修改成功!");    
            alert("修改成功!");    
            window.location.reload();    
        }else{    
            view(data.msg);    
        }    
     },    
     error : function() {    
          // view("异常!");    
          alert("异常!");    
     }    
});

热心网友 时间:2022-04-22 21:50

在ajax回调函数中调用你想执行的函数。

热心网友 时间:2022-04-22 23:42

如果你是在同一个js文件中:
var value='',
url = 'http://test:8080/testcontorl/testAjax',

data = {
参数
}

function postCross(url ,data){
$.ajax({
type:"post",
url:url,
async:false,
data:data,
dataType : "json"
success:function(data){
value=data;//返回的数据赋值给全局变量
}
});
}

function(){ postCross(url ,data);}
如果是不同的js,在后面加个return全局变量就行就行
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
为什么打电话给别人,显示无法接通? 我给对方打电话时,他那边响一声后就提示无法接通是什么情况? iPhone 6Plus相机远距离无法对焦,得用力摇几下才恢复,过会又模糊,什么... iphone6plus。近拍清楚,远拍模糊,怎么回事?聚焦不了。 怎么办~ 廉锦枫《廉锦枫》——剧情分析 我想取个好听的英文名字,而且希望是有意义的`拜托了各位谢谢 不锈钢公司取名带匠字文化深厚的企业名称大全 带匠字的厂名 公司名字为什么不可以带匠字 我儿子刚上一年级老师给我发微信时表现不错我怎么和老师沟通 怎样使用电脑USB接口为苹果iPad充电 javascript中对象$.get()中。回调函数获得数据后怎么传出? 苹果Ipad没有USB接口怎么办啊??? jspost如何拿回成功回调信息 ipad air1的usb调试在哪里 请在这里概述您的问题ajax方法成功但是不执行回调函数 ipad如何usb连接电脑怎么连接 2022年 汕尾商业贷款买房利率是多少 ...ajax请求成功,但是进入了success,但是返回的数据data为空 ipad 型号md514zp/a usb调试在哪? 笔记本的扫雷和台式的玩起来有区别吗? jquery ajax 请求详解,请求成功后回调函数中的参数“data”是指什么?请... 为什么我笔记本是W7系统的,里面却没有单机的游戏?扫雷啊蜘蛛纸牌啊都没有的 2022山西买房商业贷款利率是多少 一个有返回值的方法怎么在网络请求成功以后再返回数据 ipad怎么打开usb调试模式识别 android 网络请求成功回调是什么线程 新买的笔记本电脑清华同方的,系统自带的游戏打不开。就是扫雷,蜘蛛纸牌打不开。 ipad如何通过USB连接电脑上网? 华硕笔记本没有自带扫雷么 IPAD如何和USB连接呀 广西壮族自治区贵港市的特产有什么? 贵港的特产小吃是什么? 贵港特产有哪些 贵港有什么特产小吃 贵港有什么风味特产啊??除了莲藕!! 广西贵港特产 广西贵港有什么特产 梦见别人借钱不还,? 请问贵港特产是什么? 广西贵港有什么特产 贵港特产是什么? 梦见亲人和自已借钱不还,我们还大吵大闹的遇兆? 广西贵港和桂平有什么土特产? 梦见有个诬赖借钱不还? 广西贵港市有什么特产? 梦见别人向我借钱用各种理由不还钱 广西贵港和桂平有什么土特产啊 贵港最出名的特产是什么 贵港有什么特色东西??? 现在用的光猫路由一体机,电脑为什么搜索不到网络打印机? 杭州如何注册商标?具体怎么做?