laravel 5 vue.js csrf token

时间:2017-07-08 17:09:33

标签: laravel npm vue.js

我已经使用了一段时间来获取此csrf令牌以使用vue.js示例。

但它一直说我没有代币。我尝试了各种各样的变化。

底部(不是头部,在身体末端之前)

    <script>
    window.myToken =  <?php echo json_encode([
        '_token' => csrf_token(),
    ]); ?>
    </script>

    <script src="/js/manifest.js"></script>
    <script src="/js/vendor.js"></script>
    <script src="/js/app.js"></script>

HTML

<div id="app">
@section('content')
<example></example>
@endsection
</div>

控制台输出

CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token

vendor.js:7635 You are running Vue in development mode.
Make sure to turn on production mode when deploying for production.
See more tips at https://vuejs.org/guide/deployment.html

示例似乎也没有做多少,但我想我需要令牌。

2 个答案:

答案 0 :(得分:9)

如果你看看

  

/resources/assets/js/bootsrap.js

你会找到

let token = document.head.querySelector('meta[name="csrf-token"]');

您应该添加<head>标记

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

此错误将不再显示。

我希望这会有所帮助

答案 1 :(得分:2)

将此脚本插入您的页面head标记。

<script>
   window.Laravel = {
      'csrfToken' => '{{csrf_token()}}',
   };
</script>

bootstrap.js

window.axios.defaults.headers.common = {
    'X-CSRF-TOKEN': window.Laravel.csrfToken,
    'X-Requested-With': 'XMLHttpRequest'
}