LaravelでAjaxを使用してCSRFトークンを送信する方法


  1. LaravelでCSRFトークンを生成する: CSRFトークンを生成するには、LaravelのCSRFミドルウェアを使用します。通常、Laravelのルートファイルでこのミドルウェアがグローバルに有効になっています。CSRFトークンは、セッションに保存されます。

  2. AjaxリクエストでCSRFトークンを取得する: Ajaxリクエストを送信する前に、CSRFトークンを取得してリクエストに含める必要があります。Laravelでは、csrf_token()関数を使用して現在のCSRFトークンを取得できます。

例えば、JavaScriptで以下のようにトークンを取得し、Ajaxリクエストに含めることができます:

var csrfToken = document.querySelector('meta[name="csrf-token"]').getAttribute('content');
// Ajaxリクエストの例
$.ajax({
    url: '/example',
    type: 'POST',
    data: {
        _token: csrfToken,
        // その他のデータ
    },
    success: function(response) {
        // 成功時の処理
    },
    error: function(xhr) {
        // エラー時の処理
    }
});
  1. LaravelでCSRFトークンを検証する: Laravelでは、受信したAjaxリクエストのCSRFトークンを自動的に検証します。もしトークンが不正であれば、TokenMismatchExceptionエラーが発生します。

以上の手順に従うと、LaravelでAjaxを使用してCSRFトークンを正しく送信できます。これにより、ウェブアプリケーションのセキュリティが向上し、クロスサイトリクエストフォージェリ攻撃から保護されます。