如何在WebApp2中解析Angular POST请求

时间:2013-10-30 07:42:42

标签: google-app-engine angularjs webapp2

如何从Google App Engine WebApp2中的Angular POST请求中获取数据? self.request.body返回一个字符串,self.request.get(key)不返回任何内容。

提交POST的Angular代码是:

$http.post("/mail", {request_name: 'Test Name', request_body: 'Test Body'});

然后我的WebApp2处理程序中的这两行:

print "1:  " + self.request.body
print "2:  " + self.request.get('request_name')

打印此:

1:  {"request_name":"Test Name","request_body":"Test Body"}
2:  

从POST正文中获取数据的最佳方法是什么?或者我应该以不同方式发送请求?

3 个答案:

答案 0 :(得分:19)

从您的第一次打印来看,似乎Angular正在以JSON格式发送数据。 Webapp2不会为您解析此数据。对于您的特定要求,您可以:

import json
d = json.loads(self.request.body)
v = d.get(key)

如果您希望能够使用self.request.POST.get(key)访问POST数据,则可能需要将数据作为表单数据提交。有关详细信息,请参阅this SO answer

答案 1 :(得分:0)

我总是使用self.request.get并且能够从GET / POST方法获取数据,也许您以不同的格式发送只能由self.request.body访问的数据?

答案 2 :(得分:0)

你可以试试这个:

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