4
我有一个Web形式发送AJAX post请求到龙卷风包含服务器形式的数据,但由使用龙卷风
self.write(message)
的响应发送响应到AJAX是只是被显示在浏览器而不是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);
}
尝试调用event.preventDefault();在var formdata = $('#messageform')之前。formData(); – Ullauri