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即可。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • AJAX 原生js操作ajax 1.创建XMLHttpRequest对象 var xhr = new XMLHtt...
    碧玉含香阅读 3,351评论 0 7
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,844评论 1 45
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,161评论 1 32
  • 昨天在一个超链接处添加了一个事件,希望在跳转之前向后台发送一个请求,结果在$.post的回调函数中添加的e.pre...
    JasonQiao阅读 721评论 0 5
  • 大家好,我是IT修真院深圳分院第3期的学员,一枚正直纯洁善良的前端程序员,今天给大家分享一下,修真院官网前端工程师...
    大大头大阅读 7,871评论 1 72