layui使用AJAX登录跳转的坑

在使用layui登录验证跳转遇到一个坑,除了mac chrome,其他浏览器各种报错,表现为:

  1. 请求对象XMLHttpRequest: [object Object] //safari
  2. 登录成功无法跳转 //firfox
form.on('submit(login)', function (data) {
            data = data.field;
            if (data.username === '') {
                layer.msg('用户名不能为空');
                return false;
            }
            if (data.password === '') {
                layer.msg('密码不能为空');
                return false;
            } else {$.ajax({
                type:'POST',
                url:'/admin/login',//所要提交数据的服务器地址
                data:JSON.stringify({"username":data.username, "password":data.password}),
                async:true,
                datatype:'json',
                contentType:'application/json; charset=utf-8',
                // cache:false,
                success:function(reg){
                    // alert(JSON.stringify(reg));
                    if(reg.code === 1){
                        sessionStorage.setItem('sunwayitadminuser', data.username);
                        //sessionStorage.sunwayitadminuser = data.username;
                        // alert(sessionStorage.sunwayitadminuser);
                        layer.msg(reg.msg);
                        window.location.href = '../'
                    }else {
                        alert(reg.msg);
                        window.location.href= '../sales/login.html'
                    }
                },
                error: function(XMLHttpRequest, textStatus, errorThrown){
                    alert("请求对象XMLHttpRequest: "+XMLHttpRequest);
                    alert("错误类型textStatus: "+textStatus);
                    alert("异常对象errorThrown: "+errorThrown);
                    window.location.href = '../sales/login.html'
                }
            })
            }
            })

加了return false 后变成正常

              error: function(XMLHttpRequest, textStatus, errorThrown){
                    alert("请求对象XMLHttpRequest: "+XMLHttpRequest);
                    alert("错误类型textStatus: "+textStatus);
                    alert("异常对象errorThrown: "+errorThrown);
                    window.location.href = '../sales/login.html'
                }
            })
            }
return false;
            })
    });

官方说明

form.on(‘submit(*)’, function(data){
console.log(data.elem) //被执行事件的元素DOM对象,一般为button对象
console.log(data.form) //被执行提交的form对象,一般在存在form标签时才会返回
console.log(data.field) //当前容器的全部表单字段,名值对形式:{name: value}
return false; //阻止表单跳转。如果需要表单跳转,去掉这段即可。
});

参考了以下文章
layui使用AJAX提交表单的注意事项,记录踩过的坑

你可能感兴趣的:(layui,layuimini,layui,后台系统UI,jquery)