工作示例:
import cherrypyimport simplejsonclass Root(object): @cherrypy.expose def update(self): cl = cherrypy.request.headers['Content-Length'] rawbody = cherrypy.request.body.read(int(cl)) body = simplejson.loads(rawbody) # do_something_with(body) return "Updated %r." % (body,) @cherrypy.expose def index(self): return """<html><script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script><script type='text/javascript'>function Update() { $.ajax({ type: 'POST', url: "update", contentType: "application/json", processdata: false, data: $('#updatebox').val(), success: function(data) {alert(data);}, dataType: "text" });}</script><body><input type='textbox' id='updatebox' value='{}' size='20' /><input type='submit' value='Update' onClick='Update(); return false' /></body></html>"""cherrypy.quickstart(Root())链接到的文档介绍了3.2版中的几个CherryPy工具。该
json_in工具基本上可以更严格地完成上述操作,并使用3.2中的新主体处理API。
需要注意的重要一件事是,jQuery的
post功能似乎无法发送JSON(只能接收JSON)。该
dataType参数指定您希望XmlHTTPRequest
接收 的数据类型,而不是它将发送的类型,并且似乎没有可用的参数来指定要发送的类型。
ajax()相反,使用可以指定。



