首頁 >後端開發 >php教程 >如何使用 Laravel 修復 Ajax 請求中的 419 POST 錯誤?

如何使用 Laravel 修復 Ajax 請求中的 419 POST 錯誤?

Barbara Streisand
Barbara Streisand原創
2024-10-30 20:13:02239瀏覽

How to Fix the 419 POST Error in Ajax Requests with Laravel?

Ajax LARAVEL 419 POST 錯誤已解決

當嘗試在沒有正確的CSRF 令牌驗證的情況下發出Ajax POST 請求時,通常會發生此錯誤。 Laravel 實作了 CSRF 令牌保護,以防止來自外部來源的惡意請求。

問題:

對 /company 端點進行 Ajax 呼叫時遇到 POST 錯誤。

解決方案:

要解決此問題,您需要在 Ajax 請求中包含 CSRF 令牌。您可以透過將以下程式碼片段新增至Ajax 呼叫中來完成此操作:

$.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
});

這會將產生的CSRF 令牌新增至Ajax 請求的標頭中,確保Laravel 可以驗證請求是否來自經過身份驗證的用戶。

說明:

Laravel 會自動為每個活動使用者會話產生唯一的 CSRF 令牌。此令牌儲存在 HTML 文件中的元標記中:

<meta name="csrf-token" content="your-generated-token" />

進行 Ajax 呼叫時,CSRF 令牌必須與儲存在元標記中的令牌相符。如果不匹配,Laravel 將拒絕請求並返回 419 錯誤。

替代解決方案:

如果您想從CSRF 令牌驗證中排除某些URI 路徑,您可以將它們新增至VerifyCSRFToken中間件中的下列陣列中:

protected $except = [
    '/route_you_want_to_ignore',
    '/route_group/*'
];

以上是如何使用 Laravel 修復 Ajax 請求中的 419 POST 錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn