How do I get data from my Angular POST request in Google App Engine WebApp2? self.request.body
returns a string, and self.request.get(key)
returns nothing.
The Angular code that submits the POST is:
$http.post("/mail", {request_name: 'Test Name', request_body: 'Test Body'});
Then these two lines in my WebApp2 handler:
print "1: " + self.request.body
print "2: " + self.request.get('request_name')
Print this:
1: {"request_name":"Test Name","request_body":"Test Body"}
2:
What is the best way get data from the POST body? Or should I send the request differently?
Judging from your first print, it seems that Angular is sending the data in JSON format. Webapp2 will not parse this data for you. For your particular request, you can do:
import json
d = json.loads(self.request.body)
v = d.get(key)
If you want to be able to access the POST data using self.request.POST.get(key)
, you probably need to submit the data as form data. See this SO answer for more information about that.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With