Laravel5.4.30获取csrfToken

Laravel5.4.30怎么获取csrfToken?

之前在app.blade.php中有这么一段:

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

使用时是这样获取的:

params: {
  _token: Laravel.csrfToken
}

在5.4.30版本中app.blade.php没有了上面的代码,改为在bootstrap.js文件中有这么一句:

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

问题:
现在要在其他地方使用token值,应该这么写呢?

params: {
  _token: ?      //应该怎么获取token呢?
}
阅读 4.1k
1 个回答

它的修改只不过是把那段script扔到了bootstrap.js里,而这个bootstrap.js是被app.blade.php自带的app.js引用了
重点是你需要使用的地方是否继承了了这个自带的app.blade.php(即有@extends('layouts.app') )
比如说你完全没修改他的app.blade.php而且直接继承了这个layout,那就使用它的变量token即可

params: {
  _token: token
}

如果你是自己写的layout,只要保证meta标签里有

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

使用时直接_token: document.head.querySelector('meta[name="csrf-token"]')即可

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题