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 可能正在缓存 userpanel.asp,尝试在加载调用的末尾生成并附加一个随机数查询字符串,如下所示:

//generate random number and assign to rnd
$('.user-situation').load('userpanel.asp?rand='+rnd+'');
于 2012-07-19T21:38:50.163 回答
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 回答