2016-02-05 79 views
0

这里是我的webapp2的代码webapp2的POST请求不通过邮差接受JSON

class SendMessage(webapp.RequestHandler): 
    def post(self): 
     messageToId = self.request.POST.get("messageToId") 
     message = self.request.POST.get("message") 
     logging.info(messageToId) 

当我打在上面我的html方法使用

 var url = 'http://myapp.appspot.com/sendmessage'; 

     var messageToId = document.getElementById("messageToId").value; 
     var message = document.getElementById("message").value; 
     var jsonDta = { 
       messageToId : messageToId, 
       message : message 
      }; 
     $.post(url, jsonDta, function(data, status) { 
     }); 

这是工作fine.But当我尝试它与邮递员(选择发布请求 - >原始数据 - > JSON /应用程序),那么它无法获取json数据并在开发者控制台中输出None。什么是问题?

回答

1

在您的示例中,您不会在帖子中使用json有效内容。
这是一个正常形式的帖子。要发布JSON你必须JSON.stringify(jsonDta)

如果您发送的JSON,您的处理程序是这样的:

import json 
.... 

class SendMessage(webapp.RequestHandler): 

    def post(self): 

     json_string = self.request.body 
     dict_object = json.loads(json_string) 

     messageToId = dict_object['messageToId'] 
     message = dict_object.get('message', default='') 
     logging.info(messageToId)