zoukankan      html  css  js  c++  java
  • ajax请求成功回调函数没有执行问题

    如下常见的ajax前端请求,请求成功后success:function(result){ 这里的数据没有执行 }:

     $.ajax({
    	        type:"post",
    	        url:"http://localhost:8080/user/insertUser",
    	        xhrFields:{widthCredentials:true},//这里解决跨域问题需要结合后端哦
    	        data:{
    	        	"username":$("#username").val(),
    	        	"password":$("#password").val()
    	        },
    	        success:function (result) {
    	            if (0==result.code){
    	                alert("注册成功");//这里没有正常弹出
    	                window.location.href ="login.html";
    	               
    	            }else {
    	                alert("注册失败,请重新注册");
    	            }
    	        },
    	        error:function (result) {
    	            alert("未知错误");
    	        }
    	    })
    

    回调函数没有正常执行,解决办法: 添加async: false,(默认是true);
    如上:false为同步,这个Ajax请求将整个浏览器锁死,
    只有url请求中后台的方法执行结束后,才可以执行其它操作。

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

    问题2

    在添加async: false;后success回调函数能够正常alert弹窗,但是下面的window.location.href ="login.html";不能正常跳转,这个时候您检查一下您绑定的点击button按钮是否是 type="button",如果是submit改成button即可。

  • 相关阅读:
    quagga源码学习--BGP协议的初始化
    Golang pprof heap profile is empty
    python requests 配置超时及重试次数
    SVN: bdb: BDB1538 Program version 5.3 doesn't match environment version 4.7
    OpenSSL Command-Line HOWTO
    树莓派保卫战--防止SSH暴力破解
    Mac OS X Tips
    Git Tips
    SQL分组多列统计(GROUP BY后按条件分列统计)
    Show Linux Package Sort By Size
  • 原文地址:https://www.cnblogs.com/smfx1314/p/10772645.html
Copyright © 2011-2022 走看看