IE response.redirect

时间:2011-03-21 19:42:53

标签: asp.net internet-explorer

我今天遇到了一个非常奇怪的问题。 IE每次尝试响应时都会失败。重定向超过十次!当然,该页面在FF和Chrome中运行良好。还有其他人经历过这样的事吗?

以下是一些代码片段,以确保我没有做任何明显错误的事情......

循环

if ( iDomain < ubound(aDomain) ) then
    Response.Redirect "/home/login/a_logout.asp?site=" & strSite & "&domain=" & iDomain+1 & "&l=" & ilogout & "&s=" &sSid
end if

阵列

Dim aDomain(10)

aDomain(0) = ".x.com"
aDomain(1) = "www.x.com"
aDomain(2) = "w1.x.com"
aDomain(3) = "w2.x.com"
aDomain(4) = "x.com"
aDomain(5) = "w3.corporate.x.com"
'aDomain(5) = "w4.x.com"
aDomain(6) = "w5.x.com"
aDomain(7) = "w6.x.com"
'aDomain(8) = ""
'aDomain(9) = "w8.x.com"
aDomain(8) = "w9.x.com" 
aDomain(9) = "w10.x.com"

删除了上下文敏感数据。

如果您需要任何其他信息,请与我们联系。谢谢!

3 个答案:

答案 0 :(得分:4)

这是防止用户无限循环回同一页面的默认行为。

IE8s限制是对同一页面的10个请求,我相信Chrome和FireFox是20。

不,不同的查询字符串不构成我found out myself的新页面。

答案 1 :(得分:1)

我强烈建议你改变它。重定向多次是一个非常糟糕的主意。

相反,只需在本地运行a_logout页面正在运行的任何代码。我假设你清理几个饼干。继续使用空白数据重新发送所有相应的cookie,并在昨天到期。

答案 2 :(得分:0)

经常重定向 明显错误。理想的重定向最大数量为1.实际上,如果允许的话,执行某些任务会更容易,但是如果发生超过5次重定向,则应将其视为错误(在同一服务器上超过1或跨越到另一台服务器的3个以上应该被认为是次优的,但不是很难修复。

浏览器不能依赖于服务器从不做任何明显错误的事情,所以在经过几次之后,他们放弃将用户从服务器中保存下来。有时用户代理不会以这种方式保护自己(不是严肃的浏览器,但是编写一个简单的HTTP客户端代码是一个容易的错误)。它不漂亮。

为了证明这有多糟糕,考虑一下/ somePath /?id = 1的处理程序重定向到/ somePath /?id = 2,重定向到/ somePath /?id = 3等等。对于所有服务器都知道,你只是有一个更加模糊的版本,并且永远不会停止重定向。