首頁 > 後端開發 > php教程 > 如何修復 Laravel 中的「AJAX POST 請求的 CSRF 令牌不符」?

如何修復 Laravel 中的「AJAX POST 請求的 CSRF 令牌不符」?

DDD
發布: 2024-12-10 07:51:14
原創
818 人瀏覽過

How to Fix

解決Laravel 中AJAX POST 請求的CSRF 令牌不符問題

在Laravel 中發出CSAJAX POSTST 請求時,必須包含在Laravel 中發出CS 命令牌防止跨站請求偽造攻擊。在本文中,我們將解決「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 令牌不符」錯誤。

以上是如何修復 Laravel 中的「AJAX POST 請求的 CSRF 令牌不符」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板