在Laravel 5.5

时间:2017-09-06 22:03:42

标签: ajax vue.js axios laravel-5.5

我试图使用axios和最后一个Laravel版本5.5发出一些请求 配置X-CSRF字段后全部 我的代码很简单:

        axios.post('/post-contact',{name:'Kamal Abounaim'})
        .then((response)=>{
            console.log(response)
        }).catch((error)=>{
            console.log(error.response.data)
        })

但我收到此错误:419(未知状态) 应该是什么问题 谢谢你的回答

3 个答案:

答案 0 :(得分:9)

由于csrf-token,这种情况正在发生。只需在<head>中添加带有csrf-token的元标记,然后将该标记添加到axios标头中。

// in the <head>
<meta name="csrf-token" content="{{ csrf_token() }}">

<script type="text/javascript">
    // For adding the token to axios header (add this only one time).
    var token = document.head.querySelector('meta[name="csrf-token"]');
    window.axios.defaults.headers.common['X-CSRF-TOKEN'] = token.content;

    // send contact form data.
    axios.post('/post-contact',{name:'Kamal Abounaim'
    }).then((response)=>{
        console.log(response)
    }).catch((error)=>{
        console.log(error.response.data)
    });
</script>

答案 1 :(得分:0)

A 419 error seems to be Authentification Timeout。你的代码看起来很好,所以似乎错误是post-contact端点?尝试使用postman.

等工具单独测试该端点

答案 2 :(得分:0)

这是VerifyCsrfToken中间件...... 只需评论它 应用程序/ HTTP / Kernel.php

protected $middlewareGroups = [
        'web' => [
            .. middlewares before
            //\App\Http\Middleware\VerifyCsrfToken::class, -> comment this or delete
            .. other
        ],

        'api' => [
            'throttle:60,1',
            'bindings',
        ],
    ];

我有同样的问题,感谢@abdalla arbab:)