Lorsque vous essayez de supprimer des données d'une base de données à l'aide d'une requête AJAX POST dans Laravel, vous pouvez rencontrer l'erreur "CSRF incompatibilité de jetons. » Cela se produit parce que Laravel inclut un jeton CSRF dans toutes les formes pour se protéger contre les attaques de falsification de requêtes intersites.
Le code HTML et AJAX fourni montre une configuration de suppression data :
HTML :
@foreach($a as $lis) //some code <a href="#">
Code 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; } });
Pour résoudre l'erreur « Incompatibilité de jeton CSRF », vous devez inclure le jeton CSRF dans votre requête AJAX. Cela peut être fait en ajoutant le code suivant à votre demande :
data: { "_token": "{{ csrf_token() }}", "id": id }
Code AJAX mis à jour :
$('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; } });
Avec cet ajout, votre demande AJAX inclura le jeton CSRF et les données dont vous avez besoin pour effectuer l'opération de suppression.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!