通过具有IE<11

Redirection through a proxy with IE<11

本文关键字:lt IE      更新时间:2023-09-26

我被一个问题困扰了好几天,这个问题似乎非常特定于某些版本的IE和代理的使用。我的ASP MVC 5应用程序通过Ajax请求进行身份验证。如果请求成功,则通过将主页的url分配给window.location.href来触发重定向到主页。这很好。

现在,客户端(人员)使用Kerberos代理和IE8/9。当IE未配置为使用代理时,重定向工作正常。然后,我在FF和IE8上使用相同的参数配置了代理。我还在他们的异常列表中添加了一个条目,以排除部署我的应用程序的IIS服务器的IP。它仍然适用于FF,但不适用于IE8/9。使用代理时,主页面永远不会显示。我只收到一张空白页。页面后面的所有代码似乎都在那里。但是IE8似乎不愿意解释Javascript。我自己没有测试,但与我联系的技术人员告诉我IE 11没有问题。

我在这里测试了许多建议,但都没有成功:https://code.google.com/p/html5security/wiki/RedirectionMethods

直到最近,我才用这个ajax版本取代了通常通过表单帖子登录的方式。由于控制器返回以下内容,以前的版本被重定向:

 return RedirectToAction("Index", "Main", new { area = "" });

尽管使用了代理,它仍然有效。这种重定向与上面描述的重定向在技术上有什么不同?

事实证明这不是重定向的问题。

最初,重定向似乎是最有可能的地方问题可能潜伏着。我做了很多测试,在我没有想法之后,我开始考虑代码的其他部分。我开始寻找与客户端的上一版本相比发生了变化的代码的任何部分,我准备系统地测试即使是看起来不太可能引起任何问题的部分,即使它看起来很"愚蠢"。。。我很快就找到了解决方案!

以下几行简单地使IE停止了对页面的解释:

<link rel="icon" type="image/png" href="/Content/Images/Logo/gapLogo2014.png" />
<!--[if IE]>
   <link rel="shortcut icon" href="/Content/Images/Logo/gapLogo2014.png" type="image/vnd.microsoft.icon" />
<![endif]-->

这两个链接标签中的一个就足以产生问题。确实,只有当IE 8/9被配置为使用代理时,即使IE的排除列表包含web服务器的IP,问题才会出现在它身上。

我找不到根本原因。我刚刚消除了这个因素。这个客户不会看到一个收藏夹,不是什么大不了的事。