Maison > Article > interface Web > Comment résoudre l'erreur 403 lorsque Django utilise des données de publication ajax
Dans Django, lors de l'utilisation des données de publication jquery ajax, une erreur 403 se produira. Comment la résoudre ? Laissez-moi vous aider à résoudre l'erreur 403 lors de l'utilisation de données de publication ajax dans Django. Les amis qui en ont besoin peuvent se référer à
Cet article vous présente deux méthodes dans Django, lors de l'utilisation de données de publication ajax jquery, une erreur 403. se produira, veuillez voir ci-dessous pour plus de détails.
Méthode 1 :
Si jQuery est utilisé pour gérer ajax, Django envoie directement un morceau de code pour résoudre le problème. Mettez-le dans un fichier js séparé et introduisez-le dans la page html. Notez que ce fichier js doit être introduit après l'introduction du fichier jquery js
$(document).ajaxSend(function(event, xhr, settings) { function getCookie(name) { var cookieValue = null; if (document.cookie && document.cookie != '') { var cookies = document.cookie.split(';'); for (var i = ; i < cookies.length; i++) { var cookie = jQuery.trim(cookies[i]); // Does this cookie string begin with the name we want? if (cookie.substring(, name.length + ) == (name + '=')) { cookieValue = decodeURIComponent(cookie.substring(name.length + )); break; } } } return cookieValue; } function sameOrigin(url) { // url could be relative or scheme relative or absolute var host = document.location.host; // host + port var protocol = document.location.protocol; var sr_origin = '//' + host; var origin = protocol + sr_origin; // Allow absolute or scheme relative URLs to same origin return (url == origin || url.slice(, origin.length + ) == origin + '/') || (url == sr_origin || url.slice(, sr_origin.length + ) == sr_origin + '/') || // or any other URL that isn't scheme relative or absolute i.e relative. !(/^(\/\/|http:|https:).*/.test(url)); } function safeMethod(method) { return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method)); } if (!safeMethod(settings.type) && sameOrigin(settings.url)) { xhr.setRequestHeader("X-CSRFToken", getCookie('csrftoken')); } });
Méthode 2 :
Ajouter @ avant la vue qui gère les données de publication Le csrf_exempt décorateur
tel que
@csrf_exempt def profile_delte(request): del_file=request.POST.get("delete_file",'')
est ce que j'ai compilé pour vous, j'espère que cela vous sera utile à l'avenir.
Articles connexes :
Une brève introduction à l'écriture d'Ajax sans bibliothèque (framework)
Implémentation de la fonction de téléchargement de fichiers basée sur Ajax et HTML5 dans MVC
Jquery et php combinés pour implémenter l'interrogation longue AJAX
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!