我正在使用Vuejs,我想向我的laravel服务器发出一个安全的AJAX请求(使用axios),但我认为CSRF保护不起作用,因为我更改了前端部分的令牌,即使这样我也可以与数据库交互。
我读到Laravel附带了一个名为bootstrap.js的文件,假设这个文件在默认情况下执行此任务,但它不适用于我。我想是因为当我运行npm run watch的时候,webpack没有加载文件,但是我不知道如何加载它。
我搜索了答案,但只找到了Bootstrap教程:/
发布于 2019-05-31 12:03:24
在head中:
<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');
};发布于 2019-05-31 10:13:50
您可以将CSRF放在元中作为_token。如下所示:
<meta name="csrf-token" content="{{ csrf_token() }}">
有关这一点,请访问laravel文档。https://laravel.com/docs/5.6/csrf#csrf-x-csrf-token
然后在你的javascript中访问它。
发布于 2019-05-31 10:23:45
您应该为API组添加VerifyCsrfToken中间件(app/Http/Kernel.php)
https://stackoverflow.com/questions/56387268
复制相似问题