美文网首页java成长之路前端jquery和 ajax
ajax请求成功回调函数没有执行问题

ajax请求成功回调函数没有执行问题

作者: Java成长之路 | 来源:发表于2019-04-26 09:55 被阅读4次

如下常见的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请求成功回调函数没有执行问题

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

  • 2019-06-17

    Ajax原理 创建对象 回调函数主体 初始化请求 发送请求 设定回调函数 经典方式 $.ajax({ url:"发...

  • AJax基础

    什么是Ajax Ajax是用JavaScript执行异步网络请求,请求是异步执行的,也就是说,要通过回调函数获得响...

  • AJAX和Promise及跨域

    回调地狱 封装ajax的时候,发现:请求成功后的值不能直接返回给调用者,而需要在其内部执行一个回调函数。如果在请求...

  • window.open在Safari浏览器出现的问题

    在回调函数(最常见的就是发送ajax请求成功或者失败回调函数)中使用window.open时,在Safari浏览器...

  • vue中axios赋值的问题解决

    1.在请求执行成功后执行回调函数中的内容,回调函数处于其它函数的内部this不会与任何对象绑定,为undefine...

  • 由回调函数说开来

    这几天涉及一些前端网络请求的问题,听得最多的就是ajax发送请求, 回调函数 回调函数的概念我在文章中有提到,是作...

  • Ajax

    创建Ajax对象 准备发送请求(配置发送请求的一些行为) 执行发送的动作 指定回调函数 xhr.readyStat...

  • jQuery 中的AJAX

    一次 HTTP 请求对应一个页面。AJAX 请求是异步执行的,也就是说要通过回调函数获得相应。ajax(url,s...

  • jQuery.ajaxPrefilter() 函数使用

    $.ajaxPrefilter()函数用于指定预先处理Ajax参数选项的回调函数 ajax请求拦截器 每次发送...

网友评论

    本文标题:ajax请求成功回调函数没有执行问题

    本文链接:https://www.haomeiwen.com/subject/oeoxnqtx.html