在表单提交后,Tornado服务器会执行一些检查并将响应发送回客户端,该响应应作为alert
显示在当前页面中。
而是使用Json
响应呈现空白的html页面,而不是在提交表单的当前页面上呈现alert
。
一旦提交,表单将通过post
发送到/dh (DataHandler)
这是Jquery:
$.post("/dh",function(data,status){
alert("Data: " + data + "\nStatus: " + status);
},"json");
龙卷风代码:
class DataHandler(BaseHandler):
def post(self):
# Checks are done with form data received
dupInfo={
'tel' : duptel,
'name' : dupName
}
self.write(json.dumps(dupInfo, default=json_util.default))
self.finish()
那么如何将这个json返回到当前页面呢?
答案 0 :(得分:3)
"警告"声明,添加return false;
。这会禁用浏览器对POST事件的默认处理。浏览器的默认行为是导航到新网址,您希望阻止它。
答案 1 :(得分:0)
为您的表单提供ID并在提交后停止默认重定向:
$("#yourForm").submit(function (event) {
event.preventDefault();
jQuery.ajax({
url: "/dh",
data: {
// whatever data you are passing to handler
},
dataType: "json",
type: "POST"
}).done(function (data, textStatus, jqXHR) {
// call was successful
// access response data
alert(data['tel'])
alert(data['name'])
}).fail(function (jqXHR, textStatus, errorThrown) {
// call error
// access response data
var data = jqXHR.responseJSON;
alert(data['tel'])
alert(data['name'])
});
});
根据你的处理程序,你应该在完成回调而不是失败的回调中结束。