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
Patricia Arquetteasal
2024-12-04 16:49:11189semak imbas

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() }}">
  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')
      }
    });

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!

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