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 ハンドラーの次の 2 行:

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 に答える