使用 Axios 发出 POST 请求时 CSRF 令牌不匹配

时间:2021-03-04 11:42:25

标签: laravel axios csrf

我在 api.php 中有一个路由,我需要使用“web”中间件来检查 csrf 验证,因为我不希望从外部访问该路由。 我已阅读以下解决方案:

Laravel “CSRF token mismatch” for POST with laravel-cors and axios

CSRF Token mismatch, laravel and axios

Laravel + Vue.js (axios) - CSRF token mismatch

https://laracasts.com/discuss/channels/laravel/csrf-token-mismatch-6

所有的都一样 - 在文档头中有 <meta name="csrf-token" content="{{ csrf_token() }}"> 并且确保在包含 axios 后将此标记添加到 bootstrap.js 中的 axios 头中。这是我的 bootstrap.js 片段

window.axios = require('axios');

window.axios.defaults.headers.common = {
  'X-CSRF-TOKEN': document.querySelector('meta[name="csrf-token"]').getAttribute('content'),
  'X-Requested-With': 'XMLHttpRequest'
};

如您所见,一切似乎都设置正确。我什至尝试在进行 POST 调用之前将令牌分配给 axios 标头,但仍然存在相同的问题 - 我不断收到“CSRF 令牌不匹配”。有什么想法可能出问题了吗?

编辑:我也尝试在表单正文中附加“_token”和 csrf 令牌值,仍然是同样的问题。

0 个答案:

没有答案