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

来源:互联网 发布:网上配镜需要哪些数据 编辑:程序博客网 时间:2024/05/01 09:59

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了。