用jquery的ajax方法获取return返回值的正确姿势

转载 2018年04月15日 16:42:12

如果jquery中,想要获取ajax的return返回值,必须注意两方面,ajax的同步异步问题,在ajax方法里面还是外面进行return返回值。

下面列举了三种写法,如果想成功获取到返回值,参考第三种写法:(即,前面两种是反面教材)

/**

 * 方式:(1)同步调用 (2)在ajax函数体里面return值
 * 结果:返回 1。未成功获取返回值
 * 失败原因:ajax内部是一个或多个定义的函数,ajax中return返回值,
 * 返回到ajax定义函数,而不是返回到ajax外层的函数checkAccount1()
 */
function checkAccount1(){
    var result = 1;
    $.ajax({
        url : 'test.do',
        type : "post",
        data : {},
        async : false,
        success : function(data) {
            return 2;
        }
    });
    return result;
}


/**
 * (1)异步调用 (2)在ajax对全局变量进行设值 (3)ajax函数外将变量return
 * 结果:返回 1。未成功获取返回值
 * 失败原因:ajax请求和后面的return result语句异步执行,
 * 导致return result比result = 2先执行并返回result的值
 */
function checkAccount2(){
    var result = 1;
    $.ajax({
        url : 'test.do',
        type : "post",
        data : {},
        async : true,
        success : function(data) {
            result = 2;
        }
    });
    return result;
}


/**
 * (1)同步调用 (2)且在ajax对全局变量进行设值 (3)ajax函数外将变量return
 * 结果:返回 2。成功获取返回值
 * 成功原因:先执行result = 2;再往下执行return result;
 */
function checkAccount3(){
    var result = 1;
    $.ajax({
        url : 'test.do',
        type : "post",
        data : {},
        async : false,
        success : function(data) {
            result = 2;
        }
    });
    return result;
}

注:参考博客:https://www.cnblogs.com/terryMe/p/6130309.html

Jquery使用Ajax构建方法返回值

使用Jquery 异步请求返回数据 function showLog(account_id){ var logss; var ajaxUrl="/tes"; $.ajax({ ...
  • liyantianmin
  • liyantianmin
  • 2015-06-10 14:21:47
  • 949

jquery获取ajax成功请求的返回值,并返回给其他函数使用

//利用回调函数把请求返回值获取 function getAjaxVal(cb){ $.get(url,function(data){ cb(data); }) } getAjaxVal(...
  • lbq199110
  • lbq199110
  • 2017-11-13 10:54:40
  • 501

jquery ajax return不起作用

最近做项目时,有一个问题,
  • tolcf
  • tolcf
  • 2014-09-03 22:38:41
  • 4858

ajax 通过return 返回data值

方法如下: 1. ajax 必须为同步 设置async:false 2. 定一个局部变量 把data赋值给局部变量 然后 return 局部变量即可  示例如下  function g...
  • hu285279904
  • hu285279904
  • 2015-07-13 16:55:11
  • 8792

获取ajax返回值的问题

一、前端代码 bian function check(){ var aData=testAsync(); if(aData.login==1){ $('#me...
  • lanbingkafei
  • lanbingkafei
  • 2015-03-10 15:24:57
  • 2218

Jquery ajax 得到返回值

Jquery ajax 得到返回值 1.ajax默认是异步调用的,所以得到的返回值是空值,要得到值必须改成同步:async: false,//同步。 2.必须定义一个全局变量 var result =...
  • yfz19890410
  • yfz19890410
  • 2013-10-12 01:16:27
  • 7731

被调用函数 ajax 同步 返回值 主函数显示返回值总是undefined

Jquery ajax 得到返回值 方案1:通过js回调函数获取返回值 方案2: 1.ajax默认是异步调用的,所以得到的返回值是空值,要得到值必须改成同步:async: false,//同步。 2....
  • Truong
  • Truong
  • 2014-02-25 11:08:35
  • 8264

ajax作用域 回调函数的返回值 异步传输时得不到值

很郁闷的问题如下:   function jsAlert() { var testNumber = 2; $.ajax({ ...
  • zxstone
  • zxstone
  • 2012-02-27 10:33:32
  • 8338

jQuery.ajax为什么不能实现return值?+ajax的同步和异步

window.location.href = "https://q.cnblogs.com/q/65549/";
  • bestcxx
  • bestcxx
  • 2016-10-28 14:50:14
  • 702

jquery ajax异步 获得返回值

使用ajax异步到一般处理程序ashx$.ajax({ type: "Post", //异步代码路径,建议使用一般处理程序ashx文件 url: "AjaxDeleteUs...
  • MajorMayer
  • MajorMayer
  • 2015-12-08 14:44:03
  • 989
收藏助手
不良信息举报
您举报文章:用jquery的ajax方法获取return返回值的正确姿势
举报原因:
原因补充:

(最多只允许输入30个字)