我正在尝试以下列方式将数据发布到App Engine:
sendMessage = function(path, data) {
$.ajax({
type: "POST",
url: path,
data: data,
contentType: "application/json",
dataType: "json",
failure: function(errMsg) {
alert(errMsg);
},
success: function(result,status,xhr){
alert(result);
}
});
};
sendMessage('/chatMessage', {"message": "aaaa"});
接收代码:
class ChatMessage(webapp2.RequestHandler):
def post(self):
user = users.get_current_user()
message = self.request.get("message", "fail")
logging.error('RequestBody:' + str(self.request.body))
logging.error('Message:' + message)
日志消息:
ERROR 2013-05-18 16:23:31,954 channels.py:52] RequestBody:message=aaaa
ERROR 2013-05-18 16:23:31,956 channels.py:53] Message:fail
INFO 2013-05-18 18:23:31,983 server.py:585] default: "POST /chatMessage HTTP/1.1" 200 2
显然,该消息在服务器上完整,因为它显示message=aaaa
但是为什么我不能“获取”来自请求的消息?
答案 0 :(得分:0)
发出POST请求时,您可以将数据编码到URL中,也可以将数据放入请求正文中。
request.get()
会在网址中获取urlencoded参数。
在您的情况下,您将数据放在请求的正文中,因此一切正常。如果您需要数据,则应该从请求正文中解析它。