2011-11-01 28 views
1

私はTornadoのプロジェクトに取り組んでおり、jQuery経由でいくつかのAJAX呼び出しを統合し始めました。私はすべてのことでかなり新しいので、明白な答えがあれば私を許してください。jQuery AJAX/Tornadoメソッドが応答しない

ログインフォームを送信するように設定されたAJAXコールがあります。これは適切なTornadoハンドラを呼び出し、私はそれが動作していることがわかります。新しいページをレンダリングすることになっているまでは、ページをレンダリングしないでください。レンダリングコールの直前にログメッセージが表示され、それから何も表示されません。エラーはなく、同じページに留まり、何もしません。誰でも何が起こっているか考えている?助けてくれてありがとうございました。

はここではPythonからの抜粋です:jQueryの側では

if auth: 
      self.set_current_user(username) 
      logging.info("LOGGED IN: RENDERING HOME") 
      self.render("home.html") 

、それはあまりにも非常に簡単です:

$(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を使用してページにリダイレクトする必要があります。

誰かを助ける希望。

関連する問題