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.
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; } });
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!