【问题标题】:laravel modal submit form getting error "TokenMismatchException in VerifyCsrfToken.php line 68:"laravel 模态提交表单出现错误“VerifyCsrfToken.php 第 68 行中的 TokenMismatchException:”
【发布时间】:2017-01-19 15:21:30
【问题描述】:

我有一个模态的登录表单。它在 header.php 文件中(头文件在视图/包含中),已包含在 welcome.blade.php 文件中。当我提交登录表单时,它会给出此错误“VerifyCsrfToken.php 第 68 行中的 TokenMismatchException:”

<a class="header-login-btn" href="#popup1">
Login&nbsp;&nbsp;<i class="fa fa-user" aria-hidden="true"></i>

                    <ul class="ds-btn">
                    <li class="box-popop1">
                        <a class="header-login-btn" href="#popup1">
                            Login&nbsp;&nbsp;<i class="fa fa-user" aria-hidden="true"></i>
                        </a>
                    </li>
                    <div id="popup1" class="overlay">
                        <div class="popup">
                            <a class="close" href="#">&times;</a>
                            <div class="account-box">
                                <div class="login-popup-header">
                                    Login
                                </div>
                                <form class="form-signin" action="loginUser" method="post">
                                    <input type="hidden" name="_token" value="{{ csrf_token() }}">
                                    <div class="form-group">
                                        <input type="text" class="form-control" name="username" placeholder="Username" required autofocus />
                                    </div>
                                    <div class="form-group">
                                        <input type="password" class="form-control" name="password" placeholder="Password" required />
                                    </div>
                                    <input name="Submit" type="submit" value="Sign In" class="btn btn-primary">
                                    <label class="checkbox-01 checkbox">
                                        <input type="checkbox" value="remember-me" />
                                        Keep me signed in
                                    </label>
                                </form>
                                <div class="or-box row-block">
                                    <div class="row">
                                        <div class="col-md-12 row-block">
                                            <a href="#" class="btn btn-primary btn-block">Create New Account</a>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                </ul>

这是我的路线

Route::post("loginUser", 'Controller@loginUser');

这是我得到的输出

【问题讨论】:

    标签: javascript php forms laravel modal-dialog


    【解决方案1】:

    尝试替换:

    <input type="hidden" name="_token" value="{{ csrf_token() }}">
    

    只需:

    {{ csrf_field() }}
    

    后者将注入适当的表单输入以满足 CSRF 令牌。或者,尝试将以下标记添加到您的标题中,然后通过您的 ajax 调用将其传递到标题中(如Laravel documentation 中所述)。

    <meta name="csrf-token" content="{{ csrf_token() }}">
    

    【讨论】:

    • 谢谢。有效。我也不得不将 header.php 重命名为 header.blade.php。
    猜你喜欢
    • 2017-02-21
    • 2017-02-23
    • 2017-07-29
    • 1970-01-01
    • 2016-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多