Tornado Ajax xsrf

Django, Flask, Bottle, WSGI, CGI…
Antworten
Drache
User
Beiträge: 51
Registriert: Montag 29. November 2010, 21:51
Wohnort: Berlin
Kontaktdaten:

Beim Tornado funktioniert folgender Code:
Jquery:

Code: Alles auswählen

   var data = {
		 '_xsrf' : getCookie("_xsrf"),
                 'username':'blaaa',
		'email':'bbb',
		'pd1':'ccc',
		'pd2':'ddd'
       }
    $.ajax({
        type:'POST',
        data: data,
        dataType:'json',
        url: '/signup/',
        success: function(data) {
        },
        error: function(jqXHR, textStatus, errorThrown)
        {
            alert(errorThrown);
        }
    })
}
Python:

Code: Alles auswählen

username = self.get_argument('username')
email = self.get_argument('email')
pd1 = self.get_argument('pd1')
pd2 = self.get_argument('pd2')
print(username,email,pd1,pd2)
jetzt würde ich gerne "echtes" Json benutzen,die Daten kommen beim Tornado
wie aus einem Formular an(username=blaaa&email=bbb&pd1=ccc&pd2=ddd).
Sobald ich in ein var json_data = JSON.stringify(data) mache,
sagt mir tornado forbidden.
jemand eine Lösung ?
Danke
Drache
deets

Wenn du "var json_data = JSON.stringify(data)" machst sagt *Tornado* geht nicht? Glaube ich nicht. Denn das ist Javascript-Code ,den du da zeigst...
Drache
User
Beiträge: 51
Registriert: Montag 29. November 2010, 21:51
Wohnort: Berlin
Kontaktdaten:

Falls jemand anderes das brauch:
JQuery:

Code: Alles auswählen

   var data = JSON.stringify({
        'username':'blaaa',
        'email':'bbb',
        'pd1':'ccc',
        'pd2':'ddd'
    })
    $.ajaxSetup({
        headers: {
            'X-CSRFToken': getCookie("_xsrf")
        }
    });
    $.ajax({
        type:'POST',
        data: data,
        dataType:'json',
        url: '/signup/',
        success: function(data) {
            }
        },
        error: function(jqXHR, textStatus, errorThrown)
        {
            alert(errorThrown);
        }
    })
Python:

Code: Alles auswählen

json_string = self.request.body
Python3

Code: Alles auswählen

json_string = self.request.body.decode("utf-8")
Antworten