Laravel で AJAX POST リクエストを使用してデータベースからデータを削除しようとすると、エラー「CSRF」が発生する場合がありますトークンが一致しません。」これは、クロスサイト リクエスト フォージェリ攻撃から保護するために、Laravel にはすべての形式で CSRF トークンが含まれているために発生します。
提供された 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 トークンの不一致」エラーを解決するには、 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 サイトの他の関連記事を参照してください。