gpt4 book ai didi

Laravel + Vue.js (axios) - CSRF token 不匹配

转载 作者:行者123 更新时间:2023-12-03 19:20:35 34 4
gpt4 key购买 nike

我在 Laravel 中遇到 csrf token 的问题。有时请求 POST(通过 axios)返回 419 代码“CSRF token 不匹配”但请求 header 包含 CSRF 和 XSRF token 。有趣的是,它不会在隐身模式下发生。

enter image description here

应用程序 Blade :

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

bootstrap .js:

window.axios = require('axios');
window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';


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

if (token) {
window.axios.defaults.headers.common['X-CSRF-TOKEN'] = token.content;
} else {
console.error('CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token');
}

内核.php:

    protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\Session\Middleware\AuthenticateSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
\App\Http\Middleware\Localization::class,
],

我试图清除缓存和配置但没有结果。任何想法如何解决它?

最佳答案

我遇到了这个问题。原因是未设置 axios header 。将它们设置在组件内的轴对象上也没有解决问题。在定义对象后设置标题为我解决了这个问题。
在您的 Blade View 中添加以下内容:

<script>window.Laravel = {csrfToken: '{{ csrf_token() }}'}</script>
在您的 bootstrap.js 文件中,声明 window.axios = require('axios'); 后添加以下内容:
window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
window.axios.defaults.headers.common['X-CSRF-TOKEN'] = window.Laravel.csrfToken;

关于Laravel + Vue.js (axios) - CSRF token 不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59448621/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com