• Ajax请求回调函数没有被调用


        $.ajax({
            type:"post",
            url:"http://172.16.41.91:8080/FcsServletSSM/users/register",
            data:$('#user_resigter').serialize(),
            dataType:"json",
            async:false,   //false为同步,true为异步
            success:function(data) {
                alert(data.type);
                console.log(data.id);
            }
        });


    async: false,(默认是true);

    如上:false为同步,这个Ajax请求将整个浏览器锁死,
    只有url请求中后台的方法执行结束后,才可以执行其它操作。

    当async: true 时,ajax请求是异步的。但是其中有个问题:ajax请求和其后面的操作是异步执行的,那么当后台方法还未执行完,就可能已经执行了 ajax请求后面的操作
    然而,data这个数据是在ajax请求success后才赋值的,结果,输出时会为空。
    所以导致一种回调函数没有被调用的假象。

    比如:后台要做一些耗时的操作就会导致这种情况。

    解决方法:通过设置 async:false 把 ajax 请求方法改成同步。

    关注公众号,分享干货,讨论技术


  • 相关阅读:
    vs2010启动调试很慢
    vs2010 cannot file the PDB file解决
    hadoop的版本到底什么样子
    关于spring 或者qurtz的配置
    eclipse 关于内嵌maven
    spring学习 mark一下
    spring mvc视图解析
    rcp项目
    邮件发送
    ASP.NET 缓存学习
  • 原文地址:https://www.cnblogs.com/molashaonian/p/9097604.html
Copyright © 2020-2023  润新知