您的位置:首页 > 其它

ajax return返回值获取不到-【开发错误记录】。

2012-11-01 15:38 369 查看
function  refundUseCoupon(trxOrderGoodsId){
$.ajax({
type:'GET',
url:'<%=contextPath%>/ucenter/getCouponPayment.do',
data:{"trxGoodsId":trxOrderGoodsId},
dataType:'json',
cache : false,
async:false,
success:function(data){
if((data.couponId != null) && (data.couponId !='') && (data.couponId>0) ){
return true;
}else{
return  false;
}
},
error : function(error) {
return false;
}
});
return result;
}



上面的函数,很简单,只作为提示用,想返回true和false,很简单,就是没注意。

结果测试.alert:undefined

下面是调用时的测试代码

// 调用测试
funaction refund (){
var refflag=false;
refflag=refundUseCoupon(_id);
alert(refflag);
if(refflag){
//
}else{
//
}

}


在上述的代码中已经return了。结果就是不返回。自己想了下。感觉在ajax中返回实际相当于没有返回值。

类似:

function refundUseCoupon(){
aa();//ajax...aa方法相当于是ajax方法。所以怎么返回也是无效的。本方法没有返回。
......
//应该在ajax外面执行return操作
return true;
}


下面的写法就可以了。

function  refundUseCoupon(trxOrderGoodsId){
var result=false;
$.ajax({
type:'GET',
url:'<%=contextPath%>/ucenter/getCouponPayment.do',
data:{"trxGoodsId":trxOrderGoodsId},
dataType:'json',
cache : false,
async : false,
success:function(data){
if((data.couponId != null) && (data.couponId !='') && (data.couponId>0) ){
result= true;
}else{
result= false;
}
},
error : function(error) {
result= false;
}
});
return result;//在ajax之外执行return
}


注意:async:false。设置为同步的,否则未等ajax执行完,就直接return初始的var resutt=false了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: