Maison > développement back-end > tutoriel php > Comment résoudre l'erreur « Incompatibilité de jeton CSRF » de Laravel dans les requêtes AJAX POST ?

Comment résoudre l'erreur « Incompatibilité de jeton CSRF » de Laravel dans les requêtes AJAX POST ?

Barbara Streisand
Libérer: 2024-12-10 02:44:13
original
450 Les gens l'ont consulté

How to Solve Laravel's

Résoudre l'inadéquation des jetons CSRF dans les requêtes Laravel AJAX POST

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.

Définition de la requête AJAX

Le code HTML et AJAX fourni montre une configuration de suppression data :

HTML :

@foreach($a as $lis)
  //some code
  <a href="#">
Copier après la connexion

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;
}
});
Copier après la connexion

Ajout du jeton CSRF

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
        }
Copier après la connexion

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;
}
});
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal