Seite 1 von 1

Tornado Ajax xsrf

Verfasst: Montag 2. Juli 2012, 22:09
von Drache
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

Re: Tornado Ajax xsrf

Verfasst: Dienstag 3. Juli 2012, 07:42
von 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...

Re: Tornado Ajax xsrf

Verfasst: Donnerstag 5. Juli 2012, 07:51
von Drache
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")