jquery - 使用 Tornado 向ajax发送响应

标签 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.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:

self.write(somedata)
raise StopIteration

关于jquery - 使用 Tornado 向ajax发送响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18635765/

相关文章:

javascript - 使用 XMLHTTPRequest 进行身份验证

javascript - 将按钮的实例传递给它的 onclick 函数 jquery

python - sqlalchemy 数据库表被锁定

python子进程通信() block

python - 如何在 Django 管理中显示 auto_now_add 字段?

javascript - AJAX:在没有页面刷新的情况下提交表单只能工作一次

javascript - 检测ajax响应的MIME类型

javascript - 使用 jquery/javascript 更改 Kendo 网格中的行颜色

jquery - 无法更新(PUT)和删除(删除)django-piston 中的数据

javascript - 如何在 angularjs 中实现类似 Excel 的过滤器?