zoukankan      html  css  js  c++  java
  • 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 请求方法改成同步。

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


  • 相关阅读:
    C++内存检测函数_CrtSetBreakAlloc()
    Detours 的配置
    浅析杀毒软件开发原理
    Sqlite3初学
    java拦截器、过滤器的区别
    sudo 设置无需密码
    Visual Studio 2012/2010/2008 远程调试
    jquery 随笔
    网页中显示xml,直接显示xml格式的文件
    centos7.2_x64安装mysql.tar.gz
  • 原文地址:https://www.cnblogs.com/molashaonian/p/9097604.html
Copyright © 2011-2022 走看看