Ich kann keine POST Ajax Anfrage in Django machen. Wenn ich eine GET-Anfrage mache, funktioniert es gut. Ich denke, es kann ein csrf Token Problem sein, aber ich kann esAJAX POST funktioniert nicht in Django
Meine Ansicht zu arbeiten:
@login_required
def add_share_points(request):
user = request.user
profile = request.user.profile
if request.method == 'POST':
value = 5.0
# Premia o usuário ao compartilhar conteúdo
VirtualCurrencyTransaction.objects.create(
user=request.user,
reason=2,
description='Você completou seu perfil',
value=value
)
return "ok"
Meine AJAX Anfrage:
$('.my-button').on('click', function(e) {
e.preventDefault();
var pointsCount = $(this).hasClass('homepage-facebook-share') ? 3 : 2;
$.ajax({
type:"POST",
url: "/add_share_points",
data: {
points: pointsCount,
}
}).done(function() {
alert('Posting completed.');
}).fail(function(){
alert('Error while posting.');
});
});
In meinem Skript, ich habe auch diese Einstellung:
function csrfSafeMethod(method) {
return (/^(GET|HEAD|OPTIONS|TRACE)$/).test(method);
}
$.ajaxSetup({
crossDomain: false,
beforeSend: function(xhr, settings) {
if (!csrfSafeMethod(settings.type)) {
xhr.setRequestHeader('X-CSRFToken', CSRF_TOKEN);
}
}
});
Was ist falsch an meinem Code? Es gab einen 500 Fehlercode, aber keine weitere Erklärung in den Protokollen.
Aktivieren Sie den Debug-Modus oder konfigurieren Sie die Protokollierung und buchen Sie den vollständigen Stack-Trace. –
Sie können in Ihrer View-Funktion keinen String '" ok "' zurückgeben, der mit einem Fehler fehlschlägt. Sie müssen [ein HttpResponse-Objekt zurückgeben] (https://docs.djangoproject.com/en/1.9/topics/http/views/#writing-views). – solarissmoke
@solarissmoke, ich habe gerade getestet. Die POST-Anforderung gibt nicht einmal die Methode ein, wenn ich debuggen. –