jquery ajax获取return值问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery ajax获取return值问题相关的知识,希望对你有一定的参考价值。

后台处理为
if( $user )
return false;
else
return true;


为什么在前台不能取得false或true值,echo false或echo true才能取到,ajax开启了同步传输async:false也不能取到return的值,为什么

jQuery的返回参数data的类型,是事先$.ajax参数里面定义的
html,json,xml 三种之分 说白了都是字符串,但是json成对象了
意思就是说,你ajax的返回参数是true或false的字符串 所以js判断是=="true" or =="false"
参考技术A 能发完整的代码?

jQuery ajax return值的获取方法


应用场景
< a href="test.jsp" onclick="return ajaxCheck();"><img /></a>

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

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

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

方法一:

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

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;

                    



参考 链接http://www.qdfuns.com/notes/19732/e2098124c7698cd2862894b3b611e5a1.html




以上是关于jquery ajax获取return值问题的主要内容,如果未能解决你的问题,请参考以下文章

原生和jQuery的ajax用法

jQuery使用ajax跨域请求获取数据

jquery中ajax用return来返回值无效

jquery 使用return返回空值

jQuery ajax return值的获取方法

jQuery.ajax为啥不能实现return值