Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Menyelesaikan Ralat CSRF Laravel 5.5 AJAX '419 (Status Tidak Diketahui)'?

Bagaimana untuk Menyelesaikan Ralat CSRF Laravel 5.5 AJAX '419 (Status Tidak Diketahui)'?

Patricia Arquette
Lepaskan: 2024-12-04 16:49:11
asal
163 orang telah melayarinya

How to Resolve the Laravel 5.5 AJAX

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:

  1. Jana Token CSRF dalam Pengepala HTML:
    Di bahagian bahagian pandangan anda, tambahkan yang berikut:

    <meta name="csrf-token" content="{{ csrf_token() }}">
    Salin selepas log masuk
  2. 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')
      }
    });
    Salin selepas log masuk

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);
    }
  });
});
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan