Javascript 龙卷风不';t向客户端发送Ajax响应
表单提交后,Tornado服务器进行一些检查并将响应发送回客户端,该响应应在当前页面中显示为Javascript 龙卷风不';t向客户端发送Ajax响应,javascript,jquery,python,tornado,Javascript,Jquery,Python,Tornado,表单提交后,Tornado服务器进行一些检查并将响应发送回客户端,该响应应在当前页面中显示为警报 相反,在提交表单的当前页面上,将使用Json响应呈现空白html页面,但不会作为警报呈现 提交时,表格通过post发送至/dh(DataHandler) 这是Jquery: $.post("/dh",function(data,status){ alert("Data: " + data + "\nStatus: " + status); },"json"); 龙卷风代码: cla
警报
相反,在提交表单的当前页面上,将使用Json
响应呈现空白html页面,但不会作为警报呈现
提交时,表格通过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返回到当前页面?在“alert”语句之后,添加return false代码>。这将禁用浏览器对POST事件的默认处理。浏览器的默认行为是导航到新的URL,您希望阻止这种行为。为表单提供一个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'])
});
});
根据您的处理程序,您应该在“完成”回调中结束,而不是在“失败”回调中结束。Hi……我在警报语句之后添加了此项,但它仍然会将您带到一个空白html页面。