Laravel の csrf トークンに問題があります。要求 POST (axios 経由) が419コード「CSRF トークンの不一致」を返すことがありますが、要求ヘッダーには CSRF および XSRF トークンが含まれています。興味深いことに、シークレット モードでは発生しません。
App.blade:
<meta name="csrf-token" content="{{ csrf_token() }}">
ブートストラップ.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,
],
キャッシュと設定をクリアしようとしましたが、結果はありませんでした。それを修正する方法はありますか?