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
Lepaskan: 2024-12-10 02:44:13
asal
388 orang telah melayarinya

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="#">
Salin selepas log masuk

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

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

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

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!

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