zoukankan      html  css  js  c++  java
  • 用jquery的ajax方法获取不到return返回值

    如果jquery中,获取不到ajax返回值。

    两个错误写法会导致这种情况:1.ajax未用同步  2.在ajax方法中直接return返回值。

    下面列举了三种写法,如果想成功获取到返回值,参考第三种写法:

    复制代码
     1 /**
     2  * 方式:(1)同步调用 (2)在ajax函数中return值
     3  * 结果:返回 1。未成功获取返回值
     4  * 失败原因:ajax内部是一个或多个定义的函数,ajax中return返回值,
     5  * 返回到ajax定义函数,而不是返回到ajax外层的函数checkAccount1()
     6  */
     7 function checkAccount1(){
     8     var result = 1;
     9     $.ajax({
    10         url : 'test.do',
    11         type : "post",
    12         data : {},
    13         async : false,
    14         success : function(data) {
    15             return 2;
    16         }
    17     });
    18     return result;
    19 }
    20 
    21 /**
    22  * (1)异步调用 (2)在ajax对全局变量进行设值 (3)ajax函数外将变量return
    23  * 结果:返回 1。未成功获取返回值
    24  * 失败原因:ajax请求和后面的return result语句异步执行,
    25  * 导致return result比result = 2先执行并返回result的值
    26  */
    27 function checkAccount2(){
    28     var result = 1;
    29     $.ajax({
    30         url : 'test.do',
    31         type : "post",
    32         data : {},
    33         async : true,
    34         success : function(data) {
    35             result = 2;
    36         }
    37     });
    38     return result;
    39 }
    40 
    41 /**
    42  * (1)同步调用 (2)且在ajax对全局变量进行设值 (3)ajax函数外将变量return
    43  * 结果:返回 2。成功获取返回值
    44  * 成功原因:先执行result = 2;再往下执行return result;
    45  */
    46 function checkAccount3(){
    47     var result = 1;
    48     $.ajax({
    49         url : 'test.do',
    50         type : "post",
    51         data : {},
    52         async : false,
    53         success : function(data) {
    54             result = 2;
    55         }
    56     });
    57     return result;
    58 }
     
  • 相关阅读:
    UVALive 6909 Kevin's Problem 数学排列组合
    UVALive 6908 Electric Bike dp
    UVALive 6907 Body Building tarjan
    UVALive 6906 Cluster Analysis 并查集
    八月微博
    hdu 5784 How Many Triangles 计算几何,平面有多少个锐角三角形
    hdu 5792 World is Exploding 树状数组
    hdu 5791 Two dp
    hdu 5787 K-wolf Number 数位dp
    hdu 5783 Divide the Sequence 贪心
  • 原文地址:https://www.cnblogs.com/wangzhuxing/p/8027163.html
Copyright © 2011-2022 走看看