2011-10-24 19 views
0

私はこのjQueryのコードを書いた:はIEで動作しますが、ないのFirefox、Safariの

<script type="text/javascript"> 
    $.ajax({   
     url: "http://www.mysite.com/login.aspx", 
     context: document.body, 
     success: function(html) { 
      $('body').append(html); 
     } 
    }); 
</script> 

、それが正常にリダイレクトさだということでそれはIEで動作しますが、何もFirefoxやSafariで起こりません。

なぜですか?

+3

「動作しません」と定義すると、どうなりますか? – OptimusCrime

+0

Firefoxでは何も起こりませんが、IEではリダイレクトが成功しました:( – Freeman

答えて

1

代わりに$('body').html(html)を試してください。すでに解析されたhtml(つまり、jQueryオブジェクトとしてラップされたもの)でappendを使うべきです。

しかし、一般的には、readirectのみを行い、URLがロケーションバーにあるかどうかに関わらず、通常のリダイレクト(document.location = 'url')を使用します。

ページコンテンツをajaxに置き換える場合は、body全体を置換するのではなく、内部にcontainer divだけを置き換える方が良い場合があります。

+0

+1はリダイレクトに同意します。また、代替案を説明してくれてありがとうございます。おそらくMikeはログイン後すべてが変更されるので、全身が置き換えられます。 – stivlo

+1

現在のシステムでは毎回同じURLに滞在したかったので、ログイン後に表示されているすべてのもの(つまり 'div#container')を置き換えるのはなぜですか?しかし、残っている' container'の外にはまだ目に見えないものはほとんどありません.btw、私たちはまだセキュリティのために、ログアウト後にフルリダイレクトを実行します。 –

+1

'context:document.body、'を削除してみましょう.html()を使用し、append()を使用しないでください。 (すでに提案されているように)、bodyを使用しないで、代わりにコンテナdivを使用します。あなたはスクリプトへのフルパスも削除しようとすることができます。 – OptimusCrime

3

Ajaxコールを使用して別のページにリダイレクトしようとしていますか?なぜ使用しないのですかdocument.location = 'wherever.htm'

+0

1.ポスターがここで何をしようとしているのかわかりませんが、別のページにリダイレクトしているだけの場合はこれが方法です。 (ドキュメント).location' – OptimusCrime

関連する問題