Laravel での AJAX POST リクエストの CSRF トークンの不一致の解決
Laravel で AJAX POST リクエストを行う場合、CSRF トークンを含めることが不可欠です。クロスサイト リクエスト フォージェリ攻撃を防ぎます。この記事では、「ajax POST リクエストの CSRF トークンの不一致」の問題に対処します。
問題の説明
データベースからデータを削除しようとしています。 AJAX リクエストを介して。 HTML には、クリックすると削除をトリガーするリンクが含まれています。対応する AJAX コードは、特定の URL に POST リクエストを送信します。ただし、削除は失敗し、「CSRF トークンが一致しません」エラーが表示されます。
解決策
この問題を解決するには、AJAX に CSRF トークンを含める必要があります。リクエスト。これは、データ パラメーターに次の行を追加することで実行できます:
data: { "_token": "{{ csrf_token() }}", "id": id }
ここで、id は削除しようとしているレコードの ID を表します。このトークンにより、サーバーは削除操作を実行する前にリクエストを検証します。
更新された AJAX コード
CSRF トークンが含まれる更新された 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 トークンを含めることにより、リクエストはサーバーによって検証され、削除操作は「CSRF トークンの不一致」エラーが発生することなく成功します。
以上がLaravelで「AJAX POSTリクエストのCSRFトークンの不一致」を修正する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。