Échec de la vérification CSRF de Django avec la requête POST Ajax
Contexte :
Django utilise une requête intersite Mécanisme de protection contre la contrefaçon (CSRF) pour empêcher les sites Web malveillants de soumettre des formulaires ou de déclencher des actions au nom d'un utilisateur. Cependant, cela peut entraîner des problèmes lors des requêtes AJAX POST.
Solution :
La requête AJAX POST doit inclure le jeton CSRF dans son corps de données pour transmettre le CSRF de Django. vérifier. À l'aide de la fonction $.ajax, cela peut être réalisé en ajoutant simplement la paire clé-valeur csrfmiddlewaretoken à l'objet de données :
$.ajax({ data: { somedata: 'somedata', moredata: 'moredata', csrfmiddlewaretoken: '{{ csrf_token }}' },
Le langage de modèle Django prend en charge une variable spéciale, {{ csrf_token }}, qui récupère et insère le jeton CSRF dans le code JavaScript. Ce jeton est utilisé pour vérifier que la requête provient de la source attendue et empêche les attaques CSRF.
En incorporant le csrfmiddlewaretoken dans le corps de données de la requête AJAX POST, vous vous assurez que Django reconnaît et accepte la requête, permettant il pour traiter les données et effectuer l'action souhaitée.
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!