jQuery AJAX / метод Tornado не отвечает

#ajax #jquery #tornado

#ajax #jquery #tornado

Вопрос:

Я работал над проектом на Tornado и только начал интегрировать несколько вызовов AJAX через jQuery. Я довольно новичок во всем этом, поэтому простите меня, если есть очевидный ответ.

У меня настроен вызов 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");

}
 

Ответ №1:

В конце концов я нашел ответ на этот вопрос через друга и просто помещаю его здесь для будущих путешественников. По-видимому, если вы вызываете рендеринг страниц через AJAX, страница, которую вы хотите отобразить, просто загружается в память, но фактически не отображается в браузере. Если я выполняю трассировку «xml» в приведенном примере, он возвращает неотрендированный текст HTML-документа, который я хотел отобразить.

В этом случае я должен выполнить какой-то обратный вызов Javascript, чтобы сообщить ему, что пользователь либо авторизован, либо нет на стороне python, а затем использовать это для перенаправления на страницу из javascript.

Надеюсь, это кому-то поможет.