我正在尝试以下列方式将数据发布到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但为什么我不能“获取”来自请求的消息?
I'm trying to post data to App Engine in the following manner:
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"});The receiving code:
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)The log messages:
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 2Obviously the message got on the server intact since it says message=aaaa But why can't I "get" the message from the request?
最满意答案
发出POST请求时,您可以将数据编码到URL中,也可以将数据放入请求的正文中。
request.get()将在url中获取urlencoded参数。
在您的情况下,您将数据放在请求的正文中,因此一切正常。 如果您需要数据,则应从请求正文中解析它。
When you issue a POST request, you can either encode data into the URL, or put the data in the body of the request.
request.get() will get urlencoded parameters in the url.
In your case, you are putting the data in the body of the request, so everything is working properly. If you want the data, you should parse it from the request body.
更多推荐
发布评论