嘗試在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 令牌不符」錯誤,您必須包含 CSRF AJAX 請求中的令牌。這可以透過將以下程式碼新增至您的要求:
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 令牌以及執行刪除操作所需的資料。
以上是如何解決 Laravel AJAX POST 請求中的「CSRF 令牌不符」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!