Laravel 5.5 AJAX 呼叫:解決「419(未知狀態)」錯誤
在Laravel 5.5 中執行AJAX 請求時,您可能會遇到「419(未知狀態)」錯誤。這通常表示跨站請求偽造 (CSRF) 令牌驗證存在問題。
了解 Laravel 的 CSRF 保護
Laravel 的 CSRF 保護機制可防止透過以下方式提交未經授權的請求你的網站。它透過產生每個 POST 請求中必須包含的唯一令牌來實現此目的。
修正 419 錯誤
要修復 419 錯誤,您需要確保您的 AJAX 請求受到 CSRF 令牌的適當保護。您可以分兩步驟執行此操作:
在 HTML 標頭中產生 CSRF 令牌:
在
<meta name="csrf-token" content="{{ csrf_token() }}">
在 JavaScript 中擷取 CSRF 令牌:
在 AJAX 請求設定中,擷取 CSRF令牌來自標頭中的標記:
$.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') } });
範例實作
這是帶有CSRF 令牌保護的AJAX 呼叫的更新版本:
$('.company-selector li > a').click(function(e) { e.preventDefault(); var companyId = $(this).data("company-id"); $.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') } }); $.ajax({ url: '/fetch-company/' + companyId, dataType: 'json', type: 'POST', data: {}, contentType: false, processData: false, success: function(response) { console.log(response); } }); });
透過合併這些更改,您的AJAX 請求將受到CSRF的保護攻擊,解決“419(未知狀態)”錯誤。
以上是如何解決 Laravel 5.5 AJAX'419(未知狀態)”CSRF 錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!