How to parse an Angular POST request in WebApp2

前提是你 提交于 2019-12-04 10:51:15

问题


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?


回答1:


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.




回答2:


I always use self.request.get and able to get the data from GET/POST method, maybe you send the data in different format that only accessible by self.request.body?




回答3:


You can try this:

 self.request.POST.get(key) # POST requests
 self.request.GET.get(key)  # GET requests


来源:https://stackoverflow.com/questions/19676501/how-to-parse-an-angular-post-request-in-webapp2

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!