Gestion des disparités de jetons CSRF dans les requêtes Ajax POST de Laravel
Lors de la tentative de suppression de données d'une base de données à l'aide d'une requête Ajax POST, les développeurs peuvent rencontrer une erreur « incompatibilité csrf_token ». Ce problème survient lorsque le framework Laravel utilise la protection CSRF (Cross-Site Request Forgery) et que la requête entrante ne dispose pas d'un jeton CSRF valide.
Pour résoudre ce problème, il est crucial d'incorporer un paramètre de données dans l'Ajax. request et incluez les valeurs "_token" et "id". La valeur "_token" est un jeton CSRF qui empêche les requêtes non autorisées, tandis que la valeur "id" identifie l'enregistrement à supprimer.
Le code Ajax révisé ci-dessous :
$('body').on('click', '.delteadd', function (e) { e.preventDefault(); 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){ alert(msg.message); }else{ alert(msg.message); } }); } else { return false; } });
En ajoutant ce paramètre de données, la requête Ajax garantit que le jeton CSRF et les données corrects sont inclus, contournant l'erreur "csrf_token mismatch" et permettant une suppression réussie des données du base de données.
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!