Laravel 5.4中的Symfony \ Component \ HttpKernel \ Exception \ HttpException错误

时间:2018-02-10 12:37:34

标签: php laravel symfony

我希望注册用户使用模态和快速身份验证,我正在使用Ajax发送数据。 我的代码在这里:

 <div class="modal fade" tabindex="-1" role="dialog" id="mySignup">
    <div class="modal-dialog" role="document">
        <div class="login-wrap">
            <div class="form text-center">
                <input type="text" name="name" id="name"/>
                <input type="email"  name="email" id="email"/>
                <input type="password" name="pw" id="password"/>
                <button id="SignUp">Signup</button>
            </div>
        </div>
        {{csrf_field()}}
    </div>
</div>
<script>
$(document).ready(function () {
    $('#SignUp').click(function (event) {
        var name = $('#name').val();
        var email = $('#email').val();
        var password =$('#password').val();
        $.post('/register',{
            'name' : name,
            'email' :email,
            'password':password,
            'token':$('input[name=_token]').val()
        });
    });
});
</script>

在Web.php中我正在使用此代码:

Route::post('/register',[
'as'=> '',
'uses' => 'Auth\RegisterController@Register'
 ]);

但是当我想要SignUp时,我给出了带有419状态代码的错误消息 {message: "", exception: "Symfony\Component\HttpKernel\Exception\HttpException",…} 我怎么能解决这个问题?

2 个答案:

答案 0 :(得分:1)

当laravel检查token

中的CSRF令牌时,

_token更改为_token

'_token':$('input[name=_token]').val()

答案 1 :(得分:0)

您需要在标头

中传递令牌
<meta name="csrf-token" content="{{ csrf_token() }}">

在ajax调用上添加标头

headers: {
    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}