Rumah >pembangunan bahagian belakang >tutorial php >Ralat Laravel 5.5 AJAX 419: Bagaimana untuk Membetulkan Isu Token CSRF?

Ralat Laravel 5.5 AJAX 419: Bagaimana untuk Membetulkan Isu Token CSRF?

DDD
DDDasal
2024-12-01 11:08:11380semak imbas

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

Panggilan Laravel 5.5 AJAX Mengembalikan Status Tidak Diketahui 419: Menyelesaikan Isu Token CSRF

Soalan:

Saya sedang melaksanakan Panggilan AJAX dalam Laravel 5.5 tetapi menemui "419 (status tidak diketahui)" ralat. Walaupun tidak mempunyai borang pada halaman saya, saya mengesyaki isu itu terletak pada token CSRF. Bagaimanakah saya boleh menyelesaikan perkara ini?

Jawapan:

Pihak Pelanggan:

Dalam bahagian kepala HTML anda, masukkan berikut:

<meta name="csrf-token" content="{{ csrf_token() }}">

Ini menjana token CSRF unik yang pelayan akan gunakan untuk mengesahkan masuk permintaan.

Permintaan AJAX:

Ubah suai permintaan AJAX anda untuk memasukkan token CSRF dalam pengepala:

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

Ini memastikan pelayan boleh mengesahkan asal permintaan dan menghalang serangan CSRF.

Laravel Middleware (Pilihan):

Laravel secara automatik menggunakan middleware CSRF untuk melindungi permintaan POST. Untuk melumpuhkan perisian tengah ini untuk laluan tertentu (cth., yang mengendalikan panggilan AJAX anda), tambahkan baris berikut pada perisian tengah AppHttpMiddlewareVerifyCsrfToken anda:

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

Rujukan:

  • [Laravel CSRF Perlindungan](https://laravel.com/docs/5.5/csrf)
  • [Token CSRF untuk Permintaan AJAX](https://laravel.com/docs/5.5/csrf#csrf-token-for -ajax-requests)

Atas ialah kandungan terperinci Ralat Laravel 5.5 AJAX 419: Bagaimana untuk Membetulkan Isu Token CSRF?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn