Panggilan AJAX Laravel 5.5: Menyelesaikan Ralat "419 (Status Tidak Diketahui)"
Apabila melakukan permintaan AJAX dalam Laravel 5.5, anda mungkin menghadapi ralat "419 (Status Tidak Diketahui)". Ini secara amnya menunjukkan masalah dengan pengesahan token Cross-Site Request Forgery (CSRF).
Memahami Perlindungan CSRF Laravel
Mekanisme perlindungan CSRF Laravel menghalang permintaan yang tidak dibenarkan daripada diserahkan melalui laman web anda. Ia melakukan ini dengan menjana token unik yang mesti disertakan dengan setiap permintaan POST.
Membetulkan Ralat 419
Untuk membetulkan ralat 419, anda perlu memastikan bahawa permintaan AJAX anda dilindungi dengan betul oleh token CSRF. Anda boleh melakukan ini dalam dua langkah:
Jana Token CSRF dalam Pengepala HTML:
Di bahagian
<meta name="csrf-token" content="{{ csrf_token() }}">
Dapatkan Token CSRF dalam JavaScript:
Dalam persediaan permintaan AJAX anda, dapatkan semula token CSRF daripada teg dalam pengepala:
$.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') } });
Contoh Pelaksanaan
Berikut ialah versi terkini panggilan AJAX anda dengan perlindungan token CSRF:
$('.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); } }); });
Dengan memasukkan perubahan ini, permintaan AJAX anda akan dilindungi daripada Serangan CSRF, menyelesaikan ralat "419 (Status Tidak Diketahui)".
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat CSRF Laravel 5.5 AJAX '419 (Status Tidak Diketahui)'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!