对于某些版本的IE和代理的使用似乎非常具体的问题,我被困了几天。 我的ASP MVC 5应用程序使用Ajax请求进行身份验证。如果请求成功,则通过将主页的URL分配给 window.location.href 来触发重定向到主页面。这很好。
现在,客户端(人员)使用Kerberos代理和IE8 / 9。当IE未配置为使用代理时,重定向工作正常。然后我在FF和IE8上配置了相同参数的代理。我还在其例外列表中添加了一个条目,以排除部署了我的应用程序的IIS服务器的IP。 它仍适用于FF,但不适用于IE8 / 9。使用代理时,永远不会显示主页面。我只得到一个空白页面。然而,页面背后的所有代码似乎都在那里。但IE 8似乎不愿意解释Javascript。我没有亲自测试,但是我接触过的技术人员告诉我IE 11没有问题。
我在这里测试了许多建议失败:https://code.google.com/p/html5security/wiki/RedirectionMethods
直到最近我才通过这个ajax版本的表单发布了常规登录。之前的版本重定向,因为控制器返回此:
return RedirectToAction("Index", "Main", new { area = "" });
尽管使用了代理,它仍然有效。 从上面描述的重定向那种技术上有多么不同?
答案 0 :(得分:0)
原来这不是重定向的问题。
最初似乎重定向是最可能的地方 这个问题可能潜伏着。我做了很多测试,在我用完了想法之后,我开始考虑代码的其他部分。我开始寻找与客户端之前的版本相比已经发生变化的代码的任何部分,并且我准备系统地测试甚至看起来不太可能导致任何问题的部分,即使它看起来“愚蠢” ......我很快找到了解决方案!
以下几行简单地使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,也是如此。
我找不到根本原因。我刚刚消除了这个因素。这个客户不会看到图标,不是什么大不了的。