Javascript 龙卷风不';t向客户端发送Ajax响应

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

表单提交后,Tornado服务器进行一些检查并将响应发送回客户端,该响应应在当前页面中显示为
警报

相反,在提交表单的当前页面上,将使用
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页面。