理解並解決 Ajax Laravel 419 POST 錯誤
Laravel 419 POST 錯誤是 Ajax 請求中出現的常見問題。發生這種情況是由於請求標頭中缺少 CSRF(跨站點請求偽造)保護令牌。 Laravel 預設實現 CSRF 保護,以防止來自外部來源的惡意請求。
419 錯誤的根本原因
Laravel 為每個活動使用者會話產生唯一的 CSRF 令牌。此令牌用於驗證經過身份驗證的使用者是否是發出請求的使用者。如果請求不包含正確的 CSRF 令牌,Laravel 將傳回 419 錯誤。
Ajax 呼叫配置
在提供的 Ajax 呼叫中,X-CSRF- TOKEN 標頭遺失。將此行新增至您的Ajax 呼叫設定中,以在每個請求中包含令牌:
<code class="javascript">$.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') } });</code>
這可確保CSRF 令牌包含在每個Ajax 請求中,使其與Laravel 的CSRF 保護相容。
替代解決方案:從 CSRF 驗證中排除路由
或者,您可以在VerifyCSRFToken 中間件中從 CSRF 令牌驗證中排除某些路由。在app/Http/Kernel.php 中,將所需的路由新增至$ except 屬性:
<code class="php">protected $except = [ '/route_you_want_to_ignore', '/route_group/* ];</code>
這將使指定路由免於CSRF 令牌驗證,從而允許它們繞過Ajax 請求的419 錯誤。
結論
透過在Ajax請求中包含CSRF token或排除CSRF驗證的路由,可以有效解決Ajax Laravel 419 POST錯誤並保證完整性的請求。
以上是為什麼我的 Laravel Ajax 請求中出現 419 POST 錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!