jQuery ajax return值的获取方法


应用场景:

<a href="test.jsp" onclick="return ajaxCheck();"><img src="xxxxxxx"/></a>

ajaxCheck是ajax后台服务端判断并返回验证结果true,false。

要求ajaxCheck返回false时不要调到test.jsp页面。

ajax都知道是异步的,不等到ajaxCheck返回时都已经跑到test.jsp页面了,所以不行。

方法一:

<img onclick="return ajaxCheck();" src="xxxxxxx"/>

 checkCart : function(){
  $.ajax({
         type: "POST",
         url: "xxxxxxxx",
         data: "",
         success: function(msg){
             Cart.handleCheckCart(msg);
         }
  });
 },
 
 handleCheckCart : function(data){
  var c = eval(data);
     if(!c) {
         return;
     }
     if(c.error>0) {
         alert(unescape(c.msg));
         return;
     }
     document.location.href="../test.jsp";
 }

可以但是如果涉及命名空间不同的时候就容易找不到路径。而且也显得很勉强,很不专业。

方法二:

 checkCart : function(){
  var s = true;
  $.ajax({
         type: "POST",
         async:false, //同步;
         url: "user/orderDeliver!checkCart",
         data: "",
         success: function(msg){
          s = Cart.handleCheckCart(msg);
         }
  });
  return s;
 },
 
 handleCheckCart : function(data){
  var c = eval(data);
     if(!c) {
         return false;
     }
     if(c.error>0) {
         alert(unescape(c.msg));
         return false;
     }
     return true;
 }

解决问题。

相关内容