0

ajax を使用して認証されていない GET リクエストを実行した後、サーバーにアプリケーションをリダイレクトさせようとしています。ただし、リダイレクトを取得すると (サーバーは場所の /login.html で 303 を送信します)、firebug コンソールの [応答] タブを表示すると、応答で login.html の完全な HTML を取得します (これは正常な場合があります。わからない)。次に、これをfirebugで表示すると、リダイレクトを実行しようとしていることがわかりますが、コンソールはそのアクションで回転しているだけです(処理を終了することはありません)。私はいくつかの関連情報をオンラインで見つけようとしましたが、うまくいきませんでした.私が見つけた最も近いものはHERE.

JavaScriptでこれを処理する方法は次のとおりです。

function doSomethingAwesome()
{
  try
  {
     ajaxObject.open("GET", serverLocation+ '?action=getSomeInfo', true);
     ajaxObject.send();
  }
   catch(err){}
}

ajaxObject.onreadystatechange = function()
{
  if(ajaxObject.status == 200 && ajaxUsers.readyState == 4)
  {
    do some stuff
  }
}

私の応答ヘッダーには次の情報があります: 303 See Other Connection: Keep-alive Date Location: /login.html Server nginx/1.2.7 Transfer-Encoding: chunked したがって、 onreadystatechange 関数はリダイレクトに実際に影響を与えるべきではありません (私が理解していることから) )しかし、私はそこにそれを投げると思いました。ここで実際に起こっていることは、サーバーと通信して情報をロードすることだけです。ログインしていないことがわかり (GET か POST かに関係なく)、ログイン ページへのリダイレクトを受信する必要があります (起こりません)。これがとりとめのないように聞こえる場合は申し訳ありませんが、誰かが提供できるアドバイスや助けをいただければ幸いです。

4

1 に答える 1