首頁 > 後端開發 > php教程 > 如何解決 Laravel 5.5 AJAX'419(未知狀態)”CSRF 錯誤?

如何解決 Laravel 5.5 AJAX'419(未知狀態)”CSRF 錯誤?

Patricia Arquette
發布: 2024-12-04 16:49:11
原創
164 人瀏覽過

How to Resolve the Laravel 5.5 AJAX

Laravel 5.5 AJAX 呼叫:解決「419(未知狀態)」錯誤

在Laravel 5.5 中執行AJAX 請求時,您可能會遇到「419(未知狀態)」錯誤。這通常表示跨站請求偽造 (CSRF) 令牌驗證存在問題。

了解 Laravel 的 CSRF 保護

Laravel 的 CSRF 保護機制可防止透過以下方式提交未經授權的請求你的網站。它透過產生每個 POST 請求中必須包含的唯一令牌來實現此目的。

修正 419 錯誤

要修復 419 錯誤,您需要確保您的 AJAX 請求受到 CSRF 令牌的適當保護。您可以分兩步驟執行此操作:

  1. 在 HTML 標頭中產生 CSRF 令牌

    中產生 CSRF 令牌。在視圖部分,新增以下內容:
    <meta name="csrf-token" content="{{ csrf_token() }}">
    登入後複製
  2. 在 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中文網其他相關文章!

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