0

プロジェクトのユーザー用のコントロールパネルを作成しています。DIV要素があり、その中にユーザーの状況を読み込みます$('.user-situation').load('userpanel.asp')

モーダルログインフォームがあり、jsonの認証ページにデータを送信します。

$.getJSON("authenticate.asp?U=u.val()"+"&P=p.val()"+"&format=json&jsoncallback=?", function(data){

   if(data.Status == "Successful"){

       $('.user-situation').load('userpanel.asp');

   }

});

認証ページでセッションを設定しましSession("ID") た。ご覧のとおり、ログインに成功した後、divにuserpanel.aspをリロードします。これは、そこにユーザーオプションを表示したいためです。

userpanel.aspコードは次のようになります(簡略化)

if Session("ID")= "" then
 Response.Write ("You must log in to using of site options")
else
 Response.Write (" some options write here ")
end if

これはFF、Chrome、Operaで完全に機能しますが、IE(9)では、ログインに成功した後にページが更新されると、userpanel.aspが最初の条件の結果を表示します。

どうして?!私のせいはどこ?

4

2 に答える 2

0

おそらく最初のページの結果をキャッシュしています。(IEは常に私たち全員よりも賢くしようとしています...そして失敗します。)

ページがリロードされるときに常に異なる一意の番号でクエリ文字列をソルトすることをお勧めします。試す:

$('.user-situation').load('userpanel.asp?' + Math.floor(Math.random()*1701)); // 1701 is just a number I... well... Yeah, I'm a Trekkie nerd.

とにかく、それはあなたがこれまでこのURLを見たことがないとブラウザに思わせるでしょう、それはそれがキャッシングの問題であるならば問題を解決するでしょう。

于 2012-07-19T21:45:44.297 に答える
0

IE は userpanel.asp をキャッシュしている可能性があります。次のように、ロード呼び出しの最後に乱数クエリ文字列を生成して追加してみてください。

//generate random number and assign to rnd
$('.user-situation').load('userpanel.asp?rand='+rnd+'');
于 2012-07-19T21:38:50.163 に答える