8

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

4

3 回答 3

19

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

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

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

于 2013-10-30T08:51:45.263 回答
0

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

于 2013-10-30T07:49:46.190 回答
0

你可以试试这个:

 self.request.POST.get(key) # POST requests
 self.request.GET.get(key)  # GET requests
于 2013-10-30T08:36:48.500 回答