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;
}
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;
}
相关文章推荐
- Jquery使用Ajax构建方法返回值
- jQuery 使用ajax提交遇到兼容性问题及解决方法
- jQuery中ajax的使用与缓存问题的解决方法
- jQuery中ajax的使用与缓存问题的解决方法
- jQuery UI Autocomplete 使用 ajax 方法传输Json数据出现乱码问题的解决
- jquery中ajax方法使用json需注意的小问题
- extjs使用AJAX调用方法结束不给返回值赋值问题解决
- 在jquery的ajax方法中的success中使用return要注意的问题
- jQuery中ajax的使用与缓存问题的解决方法
- jQuery中ajax的使用与缓存问题的解决方法
- 前端使用Jquery的getJSON方法,后台使用PHP,解决IE和火狐Firefox中存在的跨域ajax请求问题。
- JQuery使用Ajax引发的跨域问题和解决方法
- jQuery ajax serialize()方法的使用以及常见问题解决
- Jquery使用Ajax构建方法返回值
- Jquery在IE7下无法使用 $.ajax解决方法
- jQuery.ajax的使用方法
- jQuery使用Ajax方法调用WebService
- jquery $.ajax()取xml数据的小问题解决方法
- 使用jquery+json实现ajax的方法
- jQuery在ASP中Ajax乱码问题的处理方法