Rumah >pembangunan bahagian belakang >tutorial php >Mengapa Panggilan AJAX Laravel 5.5 Saya Mengembalikan Ralat '419 (Status Tidak Diketahui)'?

Mengapa Panggilan AJAX Laravel 5.5 Saya Mengembalikan Ralat '419 (Status Tidak Diketahui)'?

DDD
DDDasal
2024-12-01 19:08:14348semak imbas

Why Does My Laravel 5.5 AJAX Call Return a

Laravel 5.5 AJAX Call Returns "419 (Status Tidak Diketahui)

Pengenalan

Apabila melakukan panggilan AJAX dalam Laravel 5.5, menghadapi ralat "419 (Status Tidak Diketahui)" boleh mengecewakan. Ralat ini selalunya menunjukkan isu perlindungan Pemalsuan Permintaan Silang Tapak (CSRF) Artikel ini meneroka punca ralat ini dan menyediakan penyelesaian menyeluruh untuk menyelesaikannya.

Memahami Perlindungan CSRF

Laravel menggunakan. Perlindungan CSRF untuk melindungi daripada tindakan yang tidak dibenarkan yang dimulakan melalui permintaan luar Ia melibatkan pengesahan bahawa permintaan itu datang daripada sumber yang sah, mencegah hasad pelakon daripada melaksanakan tindakan berniat jahat bagi pihak pengguna.

Menyelesaikan Ralat "419"

Jika tiada borang dalam kod anda, ralat timbul kerana token yang disediakan dalam permintaan AJAX tidak tidak sepadan dengan yang disimpan dalam sesi Untuk membetulkannya, anda perlu memastikan bahawa aplikasi anda menjana token CSRF dan memasukkannya ke dalam Permintaan AJAX dengan betul.

Penyelesaian

1. Tambah Tag Meta CSRF

Sertakan teg meta berikut dalam bahagian kepala HTML anda:

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

Teg meta ini menjana token CSRF yang unik dan menyimpannya dalam sesi penyemak imbas.

2. Konfigurasikan Permintaan AJAX

Kemas kini permintaan AJAX anda untuk mendapatkan semula token CSRF daripada teg meta:

$.ajax({
  url: '/fetch-company/' + companyId,
  method: 'POST',
  headers: {
    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content'),
  },
  ...
});

3. Dayakan Perlindungan CSRF

Pastikan perlindungan CSRF didayakan dalam aplikasi Laravel anda dengan menyemak perisian tengah apl/Http/Middleware/VerifyCsrfToken.php. Ia perlu ditambahkan pada tatasusunan $middlewareGroups['web'] dalam fail kernel.php.

Kesimpulan

Dengan melaksanakan langkah-langkah ini, anda boleh menyelesaikan masalah "419 (Status Tidak Diketahui) dengan berkesan) " ralat semasa membuat panggilan AJAX dalam Laravel 5.5. Ingat, perlindungan CSRF adalah penting untuk mengekalkan keselamatan aplikasi web anda, jadi adalah penting untuk mengikuti garis panduan ini dengan teliti. Rujuk dokumentasi rasmi Laravel untuk mendapatkan maklumat lanjut tentang perlindungan CSRF.

Atas ialah kandungan terperinci Mengapa Panggilan AJAX Laravel 5.5 Saya Mengembalikan Ralat '419 (Status Tidak Diketahui)'?. 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