2012-07-19 63 views
0

我正在为我的项目中的用户编写控制面板,我有一个DIV元素,并用$('.user-situation').load('userpanel.asp')加载用户情况。经典的ASP会话和IE中的jQuery

我有一个模式登录表单,并将其发送的数据以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") 正如你可以看到我重新加载userpanel。在成功登录后,我在我的div,因为我想在那里显示用户选项。

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

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

+0

是的;你是对的,并感谢您的指导:) – MAY3AM 2012-07-19 21:48:43

+0

太棒了。很高兴这有帮助。 – Joshua 2012-09-10 19:26:01

0

IE可以缓存userpanel.asp,尝试生成和附加在最后一个随机数查询字符串在你的负载通话这样的:

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

谢谢你;但我解决了一些ASP脚本'Response.AddHeader“编译指示”,“无缓存”' – MAY3AM 2012-07-19 21:45:20