使用laravel

时间:2016-08-20 06:14:09

标签: php jquery ajax laravel laravel-5.2

您好我使用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令牌然后代码工作,否则它会抛出异常。 请为我建议一些解决方案..谢谢

2 个答案:

答案 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"
                                                    }

贝司你已经将你表格中的令牌添加到你的帖子请求中,该值隐藏在表格中,我希望我能很好地解释自己