2017-02-23 4 views
0

Ich schaffe meine AJAX-Anforderung wie folgt aus:Django 1.10: CSRF-Token Ausgabe in Ajax

data.push({'csrfmiddlewaretoken': csrf, 'answers': answers}) 

     $.ajax(
      { 
       type: "POST", 
       url: "http://127.0.0.1:8000/en/list/add/", 
       data: JSON.stringify(data), 
       dataType: 'json' 
      }).done(function (data) { 
      console.log(data) 
     }); 

Aber ich bin immer noch immer Fehler CSRF-Token fehlende oder falsch.

+0

Haben Sie das getan https://docs.djangoproject.com/en/1.10/ref/csrf/#ajax? – inlanger

Antwort

0

Django analysiert den Anfragetext nur dann, wenn er als Formulardaten kodiert ist (entweder application/x-www-form-urlencoded oder multipart/form-data). Da Ihre Daten eine JSON-Zeichenfolge sind, wird der Textkörper nicht analysiert, und Django kann das csrf-Token nicht in request.POST finden.

Wenn Sie also JSON verwenden, um den Anfragetext zu kodieren, müssen Sie stattdessen den Header verwenden. Es gibt einige Beispiele in der .