Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Menyelesaikan Ralat 'ketidakpadanan token CSRF' Laravel dalam Permintaan AJAX POST?

Bagaimana untuk Menyelesaikan Ralat 'ketidakpadanan token CSRF' Laravel dalam Permintaan AJAX POST?

Barbara Streisand
Barbara Streisandasal
2024-12-10 02:44:13451semak imbas

How to Solve Laravel's

Menyelesaikan Ketakpadanan Token CSRF dalam Laravel AJAX POST Requests

Apabila cuba memadam data daripada pangkalan data menggunakan permintaan AJAX POST dalam Laravel, anda mungkin menghadapi ralat "CSRF token tidak sepadan." Ini berlaku kerana Laravel menyertakan token CSRF dalam semua bentuk untuk melindungi daripada serangan pemalsuan permintaan merentas tapak.

Mentakrifkan Permintaan AJAX

Kod HTML dan AJAX yang disediakan menunjukkan persediaan untuk pemadaman data:

HTML:

@foreach($a as $lis)
  //some code
  <a href="#">

Kod AJAX:

$('body').on('click', '.delteadd', function (e) {
e.preventDefault();
//alert('am i here');
if (confirm('Are you sure you want to Delete Ad ?')) {
    var id = $(this).attr('id');
    $.ajax({
        method: "POST",
        url: "{{url()}}/delteadd",
        }).done(function( msg ) {
        if(msg.error == 0){
            //$('.sucess-status-update').html(msg.message);
            alert(msg.message);
        }else{
            alert(msg.message);
            //$('.error-favourite-message').html(msg.message);
        }
    });
} else {
    return false;
}
});

Menambah Token CSRF

Untuk menyelesaikan ralat "ketidakpadanan token CSRF", anda mesti memasukkan token CSRF dalam AJAX anda permintaan. Ini boleh dilakukan dengan menambahkan kod berikut pada permintaan anda:

data: {
        "_token": "{{ csrf_token() }}",
        "id": id
        }

Kod AJAX yang dikemas kini:

$('body').on('click', '.delteadd', function (e) {
e.preventDefault();
//alert('am i here');
if (confirm('Are you sure you want to Delete Ad ?')) {
    var id = $(this).attr('id');
    $.ajax({
        method: "POST",
        url: "{{url()}}/delteadd",
        data: {
        "_token": "{{ csrf_token() }}",
        "id": id
        }
        }).done(function( msg ) {
        if(msg.error == 0){
            //$('.sucess-status-update').html(msg.message);
            alert(msg.message);
        }else{
            alert(msg.message);
            //$('.error-favourite-message').html(msg.message);
        }
    });
} else {
    return false;
}
});

Dengan penambahan ini, permintaan AJAX anda akan disertakan token CSRF dan data yang anda perlukan untuk melaksanakan operasi pemadaman.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat 'ketidakpadanan token CSRF' Laravel dalam Permintaan AJAX POST?. 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