ホームページ >バックエンド開発 >PHPチュートリアル >AJAX POSTリクエストにおけるLaravelの「CSRFトークンの不一致」エラーを解決する方法は?

AJAX POSTリクエストにおけるLaravelの「CSRFトークンの不一致」エラーを解決する方法は?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-10 02:44:13451ブラウズ

How to Solve Laravel's

Laravel AJAX POST リクエストでの CSRF トークンの不一致の解決

Laravel で AJAX POST リクエストを使用してデータベースからデータを削除しようとすると、エラー「CSRF」が発生する場合がありますトークンが一致しません。」これは、クロスサイト リクエスト フォージェリ攻撃から保護するために、Laravel にはすべての形式で CSRF トークンが含まれているために発生します。

AJAX リクエストの定義

提供された HTML および AJAX コードは、削除のためのセットアップを示しています。データ:

HTML:

@foreach($a as $lis)
  //some code
  <a href="#">

AJAX コード:

$('body').on('click', '.delteadd', function (e) {
e.preventDefault();
//alert('am i here');
if (confirm('Are you sure you want to Delete Ad ?')) {
    var id = $(this).attr('id');
    $.ajax({
        method: "POST",
        url: "{{url()}}/delteadd",
        }).done(function( msg ) {
        if(msg.error == 0){
            //$('.sucess-status-update').html(msg.message);
            alert(msg.message);
        }else{
            alert(msg.message);
            //$('.error-favourite-message').html(msg.message);
        }
    });
} else {
    return false;
}
});

CSRF トークンの追加

「CSRF トークンの不一致」エラーを解決するには、 AJAX リクエスト内の CSRF トークン。これは、次のコードをリクエストに追加することで実行できます:

data: {
        "_token": "{{ csrf_token() }}",
        "id": id
        }

更新された AJAX コード:

$('body').on('click', '.delteadd', function (e) {
e.preventDefault();
//alert('am i here');
if (confirm('Are you sure you want to Delete Ad ?')) {
    var id = $(this).attr('id');
    $.ajax({
        method: "POST",
        url: "{{url()}}/delteadd",
        data: {
        "_token": "{{ csrf_token() }}",
        "id": id
        }
        }).done(function( msg ) {
        if(msg.error == 0){
            //$('.sucess-status-update').html(msg.message);
            alert(msg.message);
        }else{
            alert(msg.message);
            //$('.error-favourite-message').html(msg.message);
        }
    });
} else {
    return false;
}
});

この追加により、AJAX リクエストには以下が含まれます。 CSRF トークンと、削除操作を実行するために必要なデータ。

以上がAJAX POSTリクエストにおけるLaravelの「CSRFトークンの不一致」エラーを解決する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。