ajax和$post请求不执行回调函数

 $.ajax({
                        url:"/user/register",//url地址
                        dataType:"json",//返回的数据类型
                        type:"post",//发起请求的方式,get/post
                        data:$("#registerForm").serialize(),
                        success:function (data) {
                            //我们后台会把请求的参数封装到ResultInfo,在通过它进行相应页面
                            alert(1);
                            if (data.flag) {
                                location.href="register_ok.html"
                            }else {
                                //注册失败
                                $("#registerForm_msg").html(data.msg);
                            }
                        },
                        error:function (data) {
                            alert(2);
                        }
                    });

 

今天再次使用ajax请求,可是不管怎样回调函数一直都执行不了。查了好长时间,总结出来这几条原因。

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

2.返回数据的类型错误,可能写的是json类型,而返回的数据不是json类型。

可以如上加一个error:function函数在验证。

3.

$(function () {
   //给表单添加submit方法,让其组织同步请求,使用ajax异步请求
   //获取表单对象并调用submit()方法,在其调用function函数
    $("#registerForm").submit(function () {
       //如果function函数的返回值是一个true或者是一个空,那么会提交表单,如果是false不会提交表单
        //return checkusername();
        //如果表单全部通过则使用ajax一步请求

        if (checkusername()&&checkpassword()&&checkemail()&&checkname()&&checktelephone()){
            $.post("/user/register",$("#registerForm").serialize(),function (data) {
                alert(1);
                if (data.flag) {
                    location.href="register_ok.html"
                }else {
                    //注册失败
                    $("#registerForm_msg").html(data.msg);
                }
            },"json");
            //serialize将请求的参数序列化成字符串"key1:value1,key2:value2,....."
        }
        return false;
    });

第三条就是如上,使用submit加post或者ajax请求的时候,submit会反复提交,导致回调函数无法执行,需要在后面加一个return false;来防止多次提交。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值