您的位置:首页 > Web前端 > JQuery

Jquery使用Ajax构建方法得不到返回值的问题

2017-10-09 23:48 519 查看
源代码:

creatMember=function ($setting) {
var $email=$setting['email']?$setting['email']:0;
var $password=$setting['password']?$setting['password']:'';
var $userid='';
$.ajax({
type: "post",
url: "/mod_member/registerAjax.php?action=register",
dataType:"json",
data:{type:'ajax',email:$email,password:$password},
success: function(datas, textStatus){
eval(datas);
if((datas.status==1)&&datas.userid){
$userid=datas.userid;

}else if(datas.status==2){
messageManage({message:datas.message});
}else if(datas.status==0) {
messageManage({message:datas.message});
}
},
error:function(datas){
messageManage({message:'error!'});
}
});
if($userid)return $userid;
}

用以上代码死活得不到$userid的值,原因是这是异步方式去请求连接,当执行return的时候请求的地址还没有返回东西,所以会是空,应该让其成同步的方式,所以得加上:
async:false

成功后的代码如下:

creatMember=function ($setting) {
var $email=$setting['email']?$setting['email']:0;
var $password=$setting['password']?$setting['password']:'';
var $userid='';
$.ajax({
type: "post",
url: "/mod_member/registerAjax.php?action=register",
dataType:"json",
async:false,
data:{type:'ajax',email:$email,password:$password},
success: function(datas, textStatus){
eval(datas);
if((datas.status==1)&&datas.userid){
$userid=datas.userid;

}else if(datas.status==2){
messageManage({message:datas.message});
}else if(datas.status==0) {
messageManage({message:datas.message});
}
},
error:function(datas){
messageManage({message:'error!'});
}
});
if($userid)return $userid;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ajax