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 请求方法改成同步。

  • 相关阅读:
    真正明白了引用与对象的关系,就能避开下面这个陷阱
    python 垃圾回收
    字典
    表的操作
    MySQL数据库中的存储引擎
    MySQL数据库的基本操作
    MySQL数据库安装文件夹与配置文件简易说明
    数据库概述
    Arrays类
    Math类
  • 原文地址:https://www.cnblogs.com/molashaonian/p/7242053.html
Copyright © 2011-2022 走看看