Maison >développement back-end >Tutoriel Python >Pourquoi ma vérification CSRF Django échoue-t-elle avec une requête Ajax POST ?
Échec de la vérification CSRF de Django avec la demande de publication Ajax
Comme indiqué dans la documentation de Django, l'activation de la protection CSRF aide à prévenir les attaques malveillantes par requêtes intersites. En suivant les instructions, vous avez tenté d'implémenter la vérification CSRF avec la publication Ajax, mais vous rencontrez toujours un refus.
Pour résoudre ce problème, suivez les étapes suivantes :
Vérifiez l'existence du jeton :
Assurez-vous que le code JavaScript récupère le jeton CSRF et le stocke dans une variable appelée jeton csrf. Ce jeton doit être présent avant de définir l'en-tête :
$.post("/memorize/", data, function (result) { ... }); var csrftoken = getCookie('csrftoken'); xhr.setRequestHeader("X-CSRFToken", csrftoken);
Méthode alternative (utilisation du corps de données) :
Au lieu de définir l'en-tête, vous pouvez intégrer le Jeton CSRF dans le corps de données de la requête Ajax comme suit :
$.ajax({ data: { csrfmiddlewaretoken: '{{ csrf_token }}', ... // Other data }, });
Une fois ces étapes terminées, soumettez à nouveau la requête Ajax pour voir si la vérification CSRF réussit.
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!