我正在为我的项目中的用户编写一个控制面板,我有一个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显示第一个条件结果!!
为什么?我的错在哪里?!
答案 0 :(得分:0)
IE可能正在缓存userpanel.asp,尝试在加载调用的最后生成并附加一个随机数查询字符串,如下所示:
//generate random number and assign to rnd
$('.user-situation').load('userpanel.asp?rand='+rnd+'');
答案 1 :(得分:0)
可能正在缓存初始页面结果。 (IE总是试图比我们所有人更聪明......而且失败了。)
我建议使用唯一编号对查询字符串进行salting,当页面重新加载时,该编号始终不同。尝试:
$('.user-situation').load('userpanel.asp?' + Math.floor(Math.random()*1701)); // 1701 is just a number I... well... Yeah, I'm a Trekkie nerd.
无论如何,这会让浏览器认为你之前从未见过这个URL,如果这是一个缓存问题,这将解决问题。