Ajax调用在提交处理
问题描述:
在我更改密码功能,使用jQuery验证程序进行验证和Ajax调用检查旧密码提交处理程序。我已经尝试过的jQuery AJAX的自定义规则(addMethod)检查旧password.It了我同时输入“不正确的密码”和“此字段为必填”消息为空密码。然后,我尝试使用下面的提交处理程序中的Ajax调用,现在它正确应用验证,但未检查Ajax中的旧密码。Ajax调用在提交处理
var postUrl = "{{ URL::to('frontend/checkpassword') }}";
$(document).ready(function() {
$('#passwordForm').validate({
rules: {
password: {
required: true,
password1: {
required: true,
minlength: 8
},
password2: {
required: true,
equalTo: '#password1'
},
},
messages: {
password: {
required: "Please enter Old Password",
},
password1: {
required: "Please enter a password",
minlength: "Your password must be at least 8 characters long"
},
password2: {
required: "Please enter a password",
equalTo: "The two passwords do not match!"
},
},
},
submitHandler: function(form) {
$.ajax({
type: "POST",
url: postUrl,
data: $("#passwordForm").serialize(),
async: true,
beforeSend: function() {
$("#loading-image").show();
},
success: function(response) {
if (response == 0) {
$("#loading-image").hide();
$('#display').html("Incorrect Password");
$('#password1, #password2 ').prop('disabled', true);
} else {
$("#loading-image").hide();
$('#display').html("Correct Password");
$('#password1,#password2').removeAttr('disabled');
}
}
});
return false;
}
});
});
我检查旧密码代码
$strPassword = $request->password;
$intSessionUserId=Session::get('sessionUserId');
$user = register::find($intSessionUserId);
$strOldPassword = $user->password1;
if($strPassword==$strOldPassword) {
echo "1";
}
else {
echo "0";
}
答
按在评论
public function checkPassword(Request $request) {
$strPassword = $request->password;
$intSessionUserId=Session::get('sessionUserId');
$user = register::find($intSessionUserId);
$strOldPassword = $user->password1;
if($strPassword==$strOldPassword) {
echo "1";
} else {
echo "0";
}
}
提到你的代码,我想你可以用加密的密码比较你平淡的密码。因此,请检查并确认您使用哪种加密方法来加密密码。并加密存储在$strPassword
中的密码。这可能会解决您的问题。
我看你使用Laravel Framerowk。所以你可以使用下面的密码进行密码哈希比较。
if(Hash::check($strPassword, $strOldPassword)){
echo "1";
}else {
echo "0";
}
什么是服务器端代码校验密码功能? –
postUrl应该是:var postUrl ='frontend/checkpassword'; –
_“嗯,你期望它做什么?你想完成什么?你已经尝试过了什么?**这些尝试中发生了什么?请详细说明:特别是,如果某些东西不起作用,请不要只是声明:告诉我们它是如何失败的,如果抛出异常,什么是异常?(不要只给出类型 - 给出错误信息并说出哪一行抛出它。如果存在嵌套异常, 。)**“_(引自: [写作完美的问题(https://codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question/)) – Andreas