您好我使用laravel代码检查电子邮件是否唯一,在前端我使用jquery如下:
blade.php page
user_email: {
required: true,
email: true,
remote: {
url: base_url + "/validate_email",
type: "post"
}
},
在帖子中我在控制器中使用了以下方法validation_email:
function validate_email(Request $request) {
if ($request->input('user_email') !== '') {
if ($request->input('user_email')) {
$rule = array('user_email' => 'Required|email|unique:users');
$validator = Validator::make($request->all(), $rule);
}
if (!$validator->fails()) {
die('true');
}
}
die('false');
}
但是当我填写电子邮件并验证它显示错误为CsrftokenMismatch Exception时。当我禁用csrf令牌然后csrf令牌然后代码工作,否则它会抛出异常。 请为我建议一些解决方案..谢谢
答案 0 :(得分:3)
将令牌传递到刀片中的请求中。
remote: {
url: base_url + "/validate_email",
type: "post"
data: {
_token: function() {
return "{{csrf_token()}}"
}
}
}
答案 1 :(得分:0)
很简单,您的CSRF令牌在您的表单中的隐藏字段中,我不记得de id但您可以获得该值并将其与您的帖子请求中的电子邮件一起发送,例如:
required: true,
email: true,
remote: {
url: base_url + "/validate_email",
**YOU CAN ADD THE PARAMS HERE ( _id=" +$("#_id").val() +"),**
type: "post"
}
贝司你已经将你表格中的令牌添加到你的帖子请求中,该值隐藏在表格中,我希望我能很好地解释自己