我一直在研究Tornado上的一个项目,刚开始通过jQuery集成一些AJAX调用。我对这一切都很陌生,如果有明显的答案,请原谅我。
我设置了一个AJAX调用来提交登录表单。这会调用适当的Tornado处理程序,我可以看到它正在工作直到它应该呈现一个新页面,此时它根本不呈现页面。我在渲染调用之前看到了日志消息,然后什么也没看到。没有错误,它只是停留在同一页面上,什么都不做。任何人都知道怎么了?非常感谢任何帮助。
以下是Python的片段:
if auth:
self.set_current_user(username)
logging.info("LOGGED IN: RENDERING HOME")
self.render("home.html")
在jQuery方面,它也很简单:
$(document).ready(function(){
$("form#loginform").submit(function(){
console.log("submitting form");
$.post("/login",{
email: $("#email").val(),
password: $("#password").val(),
action: "postmsg"
}, function(xml) {
$("#msg").empty();
returnCall(xml);
});
return false;
});
});
function returnCall(xml) {
console.log("returned");
}
答案 0 :(得分:1)
最终我通过朋友找到了答案,我只是把它放在这里给未来的旅行者。显然,如果你通过AJAX调用渲染页面,你想渲染的页面只会被加载到内存中,但实际上并没有在浏览器中呈现。如果我在提供的示例中执行了“xml”的跟踪,它将返回我想要显示的HTML文档的未呈现文本。
在这种情况下,我必须对Javascript进行某种回调,让它知道用户是否在python端被授权,然后使用它从javascript重定向到页面。
希望有人帮助。