记一次ajax交互问题
问题描述: 一般走error的原因如下: 该界面使用了layui框架+metronic相关的组件 下面是我的js代码 //登录功能函数 var handleSignInFormSubmit = function() { $(‘#m_login_signin_submit‘).click(function() { //手机号 var username = $("#username").val(); //密码 var password = $("#password").val(); //手机号验证正则表达式 var myreg=/^[1][3,4,5,7,8][0-9]{9}$/; if(username==null||username==""){ layui.use(‘layer‘,function(){ var layer = layui.layer; layer.alert("请输入手机号",{icon:5}); }); return false; }else if(!myreg.test(username)){ layui.use(‘layer‘,function(){ var layer = layui.layer; layer.alert("无效手机号",{icon:5}); }); return false; }else if(password==null||password==""){ layui.use(‘layer‘,function(){ var layer = layui.layer; layer.alert("请输入密码",{icon:5}); }); return false; }else if(password.length<6||password.length>16){ layui.use(‘layer‘,function(){ var layer = layui.layer; layer.alert("密码不能小于6位或大于16位",{icon:5}); }); return false; }else{ $.ajax({ async:false,url:ZL.url.api.login,type:"POST",data : {"username":username,"password":password},dataType : ‘json‘,success:function(data){ if(data.returnCode=="000000"){ layui.use(‘layer‘,function(){ var layer = layui.layer; layer.alert(data.returnMsg,{icon:1}); }); setTimeout(() => { window.location.href= "index.html"; },1000); return true; }else if(data.returnCode="222221"){ layui.use(‘layer‘,function(){ var layer = layui.layer; layer.alert(data.returnMsg,{icon:5}); }); return false; }else if(data.returnCode="222222"){ layui.use(‘layer‘,{icon:5}); }); return false; }else if(data.returnCode="500"){ layui.use(‘layer‘,{icon:5}); }); return false; } },error:function(XMLHttpRequest,textStatus,errorThrown){ alert("失败"+username+"||"+password); // 状态码 alert(XMLHttpRequest.status); // 状态 alert(XMLHttpRequest.readyState); // 错误信息 alert(textStatus); return false; } }); } }); } ?
var handleSignInFormSubmit = function() {
$(‘#m_login_signin_submit‘).click(function(e) {
e.preventDefault();
var btn = $(this);
var form = $(this).closest(‘form‘);
form.validate({
rules: {
email: {
required: true,email: true
},password: {
required: true
}
}
});
if (!form.valid()) {
return;
}
btn.addClass(‘m-loader m-loader--right m-loader--light‘).attr(‘disabled‘,true);
form.ajaxSubmit({
url: ‘ZL.url.api.login
success: function(response,status,xhr,$form) {
// similate 2s delay
setTimeout(function() {
btn.removeClass(‘m-loader m-loader--right m-loader--light‘).attr(‘disabled‘,false);
showErrorMsg(form,‘danger‘,‘Incorrect username or password. Please try again.‘);
},2000);
}
});
});
}
说到ajaxSubmit就不能不提到ajaxForm,两者有如下区别: (1)ajaxForm不能主动提交form,函数只是为提交表单而做,需要以submit来触发提交。 (2)ajaxSubmit会主动提交表单,同时还可以在点击其他按钮时,例如button之类的,也可以触发提交,但不一定是submit按钮。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |