【问题标题】:Jquery validation for duplicate email using laravel使用 laravel 对重复电子邮件进行 Jquery 验证
【发布时间】:2016-12-27 07:47:40
【问题描述】:

您好,我正在使用 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 异常。当我禁用 csrf 令牌然后 csrf 令牌然后代码正在工作,否则它会引发异常。 请为此建议我一些解决方案。谢谢

【问题讨论】:

    标签: php jquery ajax laravel laravel-5.2


    【解决方案1】:

    在刀片中的请求中传递令牌。

    remote: {
        url: base_url + "/validate_email",
        type: "post"
        data: {
          _token: function() {
            return "{{csrf_token()}}"
          }
        }
      }
    

    【讨论】:

    • 嗨 @SteD 我应该在哪里传递它。我正在使用 jquery 验证并在单个 id 上使用它。
    【解决方案2】:

    CSRF 令牌很容易在表单的隐藏字段中,我不记得 de id 但您可以获取该值并在您的发布请求中将其与电子邮件一起发送,例如:

    required: true,
                                                        email: true,
                                                        remote: {
                                                            url: base_url + "/validate_email",
    **YOU CAN ADD THE PARAMS HERE ( _id=" +$("#_id").val() +"),**
                                                            type: "post"
                                                        }
    

    基本上您已经将表单中的令牌添加到您的发布请求中,该值隐藏在表单中,我希望我能很好地解释自己

    【讨论】:

      猜你喜欢
      • 2011-01-31
      • 1970-01-01
      • 2013-08-06
      • 2012-11-24
      • 1970-01-01
      • 2012-05-20
      • 1970-01-01
      相关资源
      最近更新 更多