如何在WebApp2中解析Angular POST请求

ben*_*ope 8 google-app-engine webapp2 angularjs

如何从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'});
Run Code Online (Sandbox Code Playgroud)

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

print "1:  " + self.request.body
print "2:  " + self.request.get('request_name')
Run Code Online (Sandbox Code Playgroud)

打印此:

1:  {"request_name":"Test Name","request_body":"Test Body"}
2:  
Run Code Online (Sandbox Code Playgroud)

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

dle*_*ech 19

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

import json
d = json.loads(self.request.body)
v = d.get(key)
Run Code Online (Sandbox Code Playgroud)

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