Laravel Ajax リクエストで 419 POST エラーが発生するのはなぜですか?

Linda Hamilton
リリース: 2024-11-03 02:16:02
オリジナル
526 人が閲覧しました

Why Am I Getting a 419 POST Error in My Laravel Ajax Requests?

Ajax Laravel 419 POST エラーの理解と解決

Laravel 419 POST エラーは、Ajax リクエストで発生する一般的な問題です。この問題は、リクエスト ヘッダーに CSRF (クロスサイト リクエスト フォージェリ) 保護トークンが欠落しているために発生します。 Laravel は、外部ソースからの悪意のあるリクエストを防ぐために、デフォルトで CSRF 保護を実装しています。

419 エラーの根本原因

Laravel は、アクティブなユーザーセッションごとに一意の CSRF トークンを生成します。このトークンは、認証されたユーザーがリクエストを行っているユーザーであることを確認するために使用されます。リクエストに正しい CSRF トークンが含まれていない場合、Laravel は 419 エラーを返します。

Ajax 呼び出し設定

提供された Ajax 呼び出しでは、X-CSRF- TOKEN ヘッダーがありません。この行を Ajax 呼び出し設定に追加して、すべてのリクエストにトークンを含めます:

<code class="javascript">$.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
});</code>
ログイン後にコピー

これにより、CSRF トークンがすべての Ajax リクエストに確実に含まれ、Laravel の CSRF 保護と互換性が得られます。

代替解決策: CSRF 検証からルートを除外する

また、VerifyCSRFToken ミドルウェアで CSRF トークン検証から特定のルートを除外することもできます。 app/Http/Kernel.php で、必要なルートを $excel プロパティに追加します。

<code class="php">protected $except = [
    '/route_you_want_to_ignore',
    '/route_group/*
];</code>
ログイン後にコピー

これにより、指定されたルートが CSRF トークン検証から除外され、Ajax リクエストの 419 エラーをバイパスできるようになります。

結論

Ajax リクエストに CSRF トークンを含めるか、CSRF 検証からルートを除外することで、Ajax Laravel 419 POST エラーを効果的に解決し、整合性を確保できます。アプリケーションのリクエストの内容。

以上がLaravel Ajax リクエストで 419 POST エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート