Ich sende eine POST-Anfrage an die Server-Anwendung mit superagent.js. Die Anfrage wird an eine django
Ansicht gesendet. Aber ich bekomme eine GET-Anfrage auf der View-Seite.Warum bekomme ich eine GET-Anfrage auf der Django-Seite beim Senden einer POST-Anfrage mit superagent
Hier ist mein Code, wo ich eine Anfrage mit superagent
zu senden versuche:
request.post('/nameofview')
.set('Content-type', 'application/x-www-form-urlencoded')
.set('X-CSRFToken', csrf)
.send({name: 'name'})
.end(callback)
Dies sind Protokolle von der django
Entwicklungsserver:
[30/Mar/2016 12:27:28] "POST /nameofview HTTP/1.1" 302 0
[30/Mar/2016 12:27:28] "GET /ru/nameofview HTTP/1.1" 404(<--Raising not found from within the view) 1696
So ist django
Projekt url Dispatcher Empfang eine Post-Anfrage, aber leitet sie dann als get-Anfrage an die Anwendungsansicht weiter. Ich habe keine Probleme mit der URL-Übereinstimmung. Die Ausführung gibt den Ansichtscode ein, aber es handelt sich um eine Abrufanforderung und nicht um einen Beitrag, weshalb ich die Postdaten, die ich gesendet habe, nicht abrufen kann.
Das ist meine Ansicht Code ist:
def nameofview(request):
if 'name' in request.POST:
# make some staff
return JsonResponse({'result': result})
else:
raise Http404()
Von diesem post, habe ich herausgefunden, dass ich eine csrftoken meiner Post-Anforderung anzubringen haben, und natürlich habe ich das, wie es here ohne beschrieben Erfolg.
Also, meine Frage ist, warum es das macht und wie kann ich es machen meine Post Anfrage nicht zu berühren?
P.S. Es funktioniert mit get-Anfrage ohne Probleme.
Bitte fügen Sie Ihre 'view'-Methode hinter'/url' hinzu. Ich nehme an, Sie haben eine Weiterleitung von '/ url' nach'/ru/url' was der Statuscode '302' anzeigt. Oder ist 'ru' ein Sprachcode und Sie verwenden ein beliebiges Sprachpaket in django, das die Sprache zur URL hinzufügt? – tjati
Geben Sie den Code für die Ansicht ein, die die erste Anforderung verarbeitet. Es leitet Sie zur zweiten URL weiter. – slezica
Ich habe einige Korrekturen an meiner Frage vorgenommen. Ja, @omeinusch, 'ru' ist ein Sprachencode und die Umleitung erfolgt in den Projekten' urls.py', hier genau 'urlpatterns + = 18n_patterns (url (r'^', include (' app.urls '))) ' . – sehrob