jquery使用ajax的坑

获取js方法中的ajax的返回值

由于需求在一个页面中有多个ajax,而需要提前获取某个ajax,其ajax的内容返回值在另外一个方法中会用到。
我的需求:先获取到是否有登录对象(这个方法同时被多次使用,封装成了方法),再在另一个方法中使用此ajax返回值,判断是否存在登录的用户。(当然**ajax可以嵌套使用,就没有我这个坑了!**)

正确的封装:

	function loginUser() {
        var results ;
        $.ajax({
            type:"GET",
            url:"user/isLogin",//servlet的请求路径(查询是否存在当前登录用户,并返回一个)
            resultData:"json",
            async:false ,//保证此ajax执行完毕
            // 试试这个需要异步: Cannot read property 'data' of undefined
            success:function (result) {//返回的resultInfo对象
                //console.log(result) ;//这里结果返回值一切正常
                results = result ;
                return result ;//无法返到新的方法中
            }
        });
         return results ;//必须在ajax外返回才有效
        //小结:想要获取的方法中的ajax返回值,必须具备两个条件
        /*
            1.此ajax必须是同步的(保证ajax先执行完,否则又会去执行下面的内容,导致找不到这个值的报错)
            2.return必须要在ajax外,方法内返回,只在ajax中返回无法接收到
         */
         }

不满足以上条件:均会报 找不到ajax中的返回值 错误
均会报找不到ajax返回值这个错误

小结

1.此ajax必须是同步的:async:false(保证ajax先执行完,否则又会去执行下面的内容,导致找不到这个值的报错)
2.return必须要在ajax外,方法内返回,只在ajax中返回无法接收到



此文来自本人java的web项目所遇到的问题,若有误,非常欢迎指正!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值