繁体   English   中英

IE中的经典ASP会话和jQuery

[英]Classic ASP Session and jQuery in IE

我正在为项目中的用户编写控制面板,我有一个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向我显示第一个条件结果!

为什么?! 我的错在哪里?

IE可能正在缓存userpanel.asp,请尝试在加载调用的末尾生成并附加一个随机数查询字符串,如下所示:

//generate random number and assign to rnd
$('.user-situation').load('userpanel.asp?rand='+rnd+'');

它可能正在缓存初始页面结果。 (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,如果这是一个缓存问题,它将解决此问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM