如何从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正文中获取数据的最佳方法是什么?或者我应该以不同方式发送请求?
答案 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