ホームページ > バックエンド開発 > PHPチュートリアル > Laravel 5.5 AJAX「419 (不明なステータス)」CSRFエラーを解決する方法?

Laravel 5.5 AJAX「419 (不明なステータス)」CSRFエラーを解決する方法?

Patricia Arquette
リリース: 2024-12-04 16:49:11
オリジナル
163 人が閲覧しました

How to Resolve the Laravel 5.5 AJAX

Laravel 5.5 AJAX 呼び出し: 「419 (不明なステータス)」エラーの解決

Laravel 5.5 で AJAX リクエストを実行すると、次のような問題が発生する可能性があります。 「419 (不明なステータス)」エラー。これは通常、クロスサイト リクエスト フォージェリ (CSRF) トークンの検証に関する問題を示しています。

Laravel の CSRF 保護について

Laravel の CSRF 保護メカニズムにより、不正なリクエストが送信されるのを防ぎます。あなたのウェブサイト。これは、すべての POST リクエストに含める必要がある一意のトークンを生成することによって行われます。

419 エラーの修正

419 エラーを修正するには、次のことを確認する必要があります。 AJAX リクエストは CSRF トークンによって適切に保護されています。これは 2 つの手順で実行できます。

  1. HTML ヘッダーで CSRF トークンを生成します:

    <meta name="csrf-token" content="{{ csrf_token() }}">
    ログイン後にコピー
  2. ビューのセクションに次の行を追加します:

  3. JavaScript で CSRF トークンを取得します
    $.ajaxSetup({
      headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
      }
    });
    ログイン後にコピー
    :
  4. AJAX リクエスト設定内で、CSRF トークンを取得しますから;ヘッダー内のタグ:

実装例

$('.company-selector li > a').click(function(e) {
  e.preventDefault();

  var companyId = $(this).data("company-id");

  $.ajaxSetup({
    headers: {
      'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
  });

  $.ajax({
    url: '/fetch-company/' + companyId,
    dataType: 'json',
    type: 'POST',
    data: {},
    contentType: false,
    processData: false,
    success: function(response) {
      console.log(response);
    }
  });
});
ログイン後にコピー

CSRF トークン保護を使用した AJAX 呼び出しの更新バージョンを次に示します:

これらの変更を組み込むことで、AJAX リクエストは保護されますCSRF 攻撃に対して、「419 (不明なステータス)」エラーを解決します。

以上がLaravel 5.5 AJAX「419 (不明なステータス)」CSRFエラーを解決する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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