Jquery 使用tornado向ajax发送响应

Jquery 使用tornado向ajax发送响应,jquery,python,ajax,tornado,Jquery,Python,Ajax,Tornado,我有一个web表单,它向tornado服务器发送一个ajax post请求,其中包含表单数据,但响应由 self.write(message) 只是显示在浏览器中,而不是js处理。如何更正此问题 class NewHandler(BaseHandler): @tornado.web.authenticated def post(self): message = { "id": str(uuid.uuid4()), "from": self

我有一个web表单,它向tornado服务器发送一个ajax post请求,其中包含表单数据,但响应由

self.write(message)
只是显示在浏览器中,而不是js处理。如何更正此问题

class NewHandler(BaseHandler):
@tornado.web.authenticated
def post(self):
    message = {
            "id": str(uuid.uuid4()),
            "from": self.current_user["name"],
            "body": self.get_argument("body"),
            }

    message["html"] = tornado.escape.to_basestring(self.render_string("message.html", message=message))
    self.write(message)
    messages.new([message])
js代码:

$(document).ready(function() {
document.session = $('#session').val();


$('#messageform').submit(function(event) {
    var formdata = $('#messageform').formData();
    var button = $('#messageform').find("input[type=submit]");
    button.prop("disabled", true);
    jQuery.ajax({
        url: '/new',
        type: 'POST',
        data: formdata,
        success: function(response){
            messageBox.show(eval("("+response+")");
            button.prop("disabled", false);
        }
    });
};

var messageBox = {
show: function(message){
    var content = $(message.html);

    $("#inbox").append(content);

}

尝试在self.write()方法之后引发StopIteration:


尝试调用event.preventDefault();就在var formdata=$('#messageform').formdata()之前;
self.write(somedata)
raise StopIteration