我正在使用Vuejs,我想向laravel服务器发出一个安全的AJAX请求(使用axios),但是我认为CSRF保护无效,因为我更改了前端部分的令牌,即使这样我也可以与数据库交互。
我了解到Laravel带有一个名为[bootstrap.js
](https://laravel.com/docs/5.8/csrf#csrf-introduction)的文件,假定该文件默认情况下执行此任务,但对我而言不起作用。我认为这是因为当我运行npm run watch
时webpack不会加载文件,但是我不知道如何加载它,
我搜索了答案,但只找到了Bootstrap教程:/
答案 0 :(得分:0)
您可以将CSRF作为_token放在meta中。像这样:
<meta name="csrf-token" content="{{ csrf_token() }}">
请访问laravel文档。 https://laravel.com/docs/5.6/csrf#csrf-x-csrf-token
然后在您的JavaScript中访问它。
答案 1 :(得分:0)
您应该为API组添加VerifyCsrfToken中间件 (app / Http / Kernel.php)
答案 2 :(得分:0)
在头上
<meta name="csrf-token" content="{{ csrf_token() }}">
在ajax中:
window.axios = require('axios');
window.axios.defaults.headers.common = {
'X-CSRF-TOKEN' : document.querySelector('meta[name="csrf-token"]').getAttribute('content');
};