Darren Zou
Darren Zou

Reputation: 143

How to store data from ajax with webapp2(python)

I want to receive data from ajax, but I got "None" as my variable

class update(webapp2.RequestHandler):
    def post(self):
        print("data",self.request.POST.get('data'))

app = webapp2.WSGIApplication([
 ('/update', update)
], debug=True)
   data= 3;
$.ajax({
    url: "/update",
    data: data, //data=3
    type: "POST",
    success: function( xml ) {
        alert( "It worked!" );
        },
});

i got: ('data', '') as result when i expected: "data '3'"

Edit: if possible, please keep the answer to just one line: like: print("data",self.request.POST.get('data'))

Upvotes: 0

Views: 91

Answers (1)

Darren Zou
Darren Zou

Reputation: 143

Thanks to Beniamin H,the solution is simple.

data= {
   'a':3   // I changed data to a dictionary 
           // edit:you don't need quotes for a, so, a:3 works also
} 
$.ajax({
    url: "/update",
    data: data,
    type: "POST",
    success: function( xml ) { //more edit:xml is the data returned 
        alert( "It worked!" );   //from the webbapp you can name it what 
                               //ever you want

//this gets data from the server
     console.log(xml['a']) //prints out 3
        },
});

class update(webapp2.RequestHandler):
    def post(self):
        data=self.request.POST.get('a')
        print("data: "+data)


#edit: to return a data to javascript, make a dictionary like: 
#    data={
#    'a':3
#    'b':5    #you need quotes i think
#    }
   #and then write:
#  self.response.write(data)

This prints out: data: 3

Upvotes: 2

Related Questions