首頁 > 後端開發 > php教程 > Laravel 5.5 AJAX 419 錯誤:如何修復 CSRF 令牌問題?

Laravel 5.5 AJAX 419 錯誤:如何修復 CSRF 令牌問題?

DDD
發布: 2024-12-01 11:08:11
原創
369 人瀏覽過

Laravel 5.5 AJAX 419 Error: How to Fix CSRF Token Issues?

Laravel 5.5 AJAX 呼叫返回未知狀態419:解決CSRF 令牌問題

問題:

我正在執行5.5 中AJAX 呼叫但遇到「419 (未知狀態)」錯誤。儘管我的頁面上沒有任何表單,但我懷疑問題出在 CSRF 令牌上。我該如何解決這個問題?

答案:

客戶端:

在HTML head 部分中,插入以下:

<meta name="csrf-token" content="{{ csrf_token() }}">
登入後複製

這會產生一個唯一的CSRF 令牌,伺服器將使用該令牌驗證傳入請求。

AJAX 請求:

修改您的AJAX 請求以在標頭中包含CSRF 令牌:

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

這可確保伺服器可以驗證請求的來源並防止CSRF

Laravel中介軟體(可選):

Laravel 自動套用 CSRF 中介軟體來保護 POST 要求。要針對特定​​路由(例如,處理AJAX 調用的中間件)禁用此中間件,請將以下行添加到您的AppHttpMiddlewareVerifyCsrfToken 中間件:

/**
 * The URIs that should be excluded from CSRF verification.
 *
 * @var array
 */
protected $except = [
    '/fetch-company/*',
];
登入後複製

參考:

  • [Laravel CSRF保護](https://laravel.com/docs/5.5/csrf)
  • [AJAX 請求的CSRF 令牌](https://laravel.com/docs/5.5/csrf#csrf-token -for -ajax-請求)

以上是Laravel 5.5 AJAX 419 錯誤:如何修復 CSRF 令牌問題?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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