Internet explorer IE不';t跟随重定向,给出;Internet Explorer无法显示网页";
我有一个带有几个字段的表单。提交表单时,服务器会以重定向(HTTP 302)进行响应 提交表单时,如果有Internet explorer IE不';t跟随重定向,给出;Internet Explorer无法显示网页";,internet-explorer,http,http-headers,Internet Explorer,Http,Http Headers,我有一个带有几个字段的表单。提交表单时,服务器会以重定向(HTTP 302)进行响应 提交表单时,如果有字段,IE不遵循重定向,而是给出一个错误:“Internet Explorer无法显示网页” 如果没有字段,则它会按照预期执行重定向 HTTP 302响应在这两种情况下完全相同,只是响应的时间戳不同 我在IE8和IE9中体验到了这一点。(我还没有试过更低的版本)。Firefox、Chrome、Opera和Safari都按照预期进行了重定向 注: 表单具有属性enctype=“multipar
字段,IE不遵循重定向,而是给出一个错误:“Internet Explorer无法显示网页”
如果没有
字段,则它会按照预期执行重定向
HTTP 302响应在这两种情况下完全相同,只是响应的时间戳不同
我在IE8和IE9中体验到了这一点。(我还没有试过更低的版本)。Firefox、Chrome、Opera和Safari都按照预期进行了重定向
注:
- 表单具有属性
enctype=“multipart/form data”
- 这是通过SSL实现的
- 重定向到的协议、主机或端口与表单发布或承载到的URL不同
- 当我使用检查HTTP通信时,问题消失,IE也会正常工作
header("location:http://www.test.co.uk/test/test.php");
或
但当命令修改为:
header("Location: http://www.test.co.uk/test/test.php");
这个问题已经问了3年了,但我最近自己也遇到了这个问题,没有找到正确的答案。这里标记为已接受的答案实际上什么都没有回答 对我来说,与众不同的是在302响应中添加了以下标题:
Connection: close
我正在重定向到另一个具有完整URL的站点,IE似乎正在尝试通过在相同TCP流上发送后续请求来优化连接,而无需重新打开它,但它不够聪明,无法发现如果标头中没有明确的“连接”指令,该站点是不同的
这至少在IE10和IE11中发生,其他浏览器都没有这个问题 为遇到此问题的人提供的另一个提示: 在我的例子中,IE11的某些安装没有正确重定向,其他安装没有正确重定向(甚至是相同版本的IE)。 当它不起作用时,IE没有检测到重定向页面的结束和下一页的开始 这在浏览器中表现为重定向页面末尾的一段HTML代码,后跟需要加载的实际页面的内容 如果启用了压缩,我们将看到重定向页面的结尾,后面是乱码文本(下一页的压缩版本): 禁用压缩时,同样的情况也会发生,重定向页面的末尾显示,后续页面显示。因为它是纯HTML,IE呈现它,它显示如下: 很明显IE没有检测到重定向页面何时结束,下一页何时开始 我们在服务器上的IIS下运行Python/Flask。 我们有完全相同版本的IE,其中一个浏览器会有这个问题,而另一个不会。我们仔细比较了所有设置,但无法在正常工作的浏览器上重现问题,反之亦然 我尝试过更新执行实际重定向的Python库(Werkzeug),我更新了wfastcgi.py,这是一个将Python与IIS集成在一起的组件,这两个东西都没有什么区别 我最终做了什么: 使用完整URL重定向在很多情况下都有效。因此,我们确保所有重定向都使用绝对URL,而不是相对URL 在那之后,仍然有一些重定向离开IE有问题加载。 事实证明,这些重定向在末尾有一个日期(在查询字符串中)。我在末尾添加了一个伪querystring参数,问题就解决了 例如: 如果原始URL以
/diary?targetday=2018-01-01
结尾,我会将其更改为/diary?targetday=2018-01-01&test=1
,以使其正常工作
希望这对某人有所帮助。奇怪。302重定向将导致浏览器在目标页面上发出GET,这将丢失上载的文件(如果有的话)。也许IE的错误就是一个迹象(IE总是有糟糕的错误消息)。但这并不能解释为什么Fiddler会“修复”事情。@Marc,在服务器上它是一个Rails应用程序。它接受请求,将文件和内容保存在数据库中,然后通过重定向到另一个页面进行响应。它应该向这个新页面发出GET请求,但事实并非如此。谢谢,我将尝试一下。谢谢,这似乎有效。我觉得这是我的负载平衡器在处理w/httpswwhere来放置此配置时重写“302重定向”响应的方式的问题?@Mashit这不是配置,而是代码。在ASP.Net应用程序中,这将是:
System.Web.HttpContext.Current.Response.AddHeader(“连接”,“关闭”)
对于PHP,它是这样的:header('Connection:close')
尽管到目前为止,我发现这只是8.Yep之前的IIS中的问题。我尝试在php中以这种方式设置标题。但似乎不起作用,我相信php会在默认情况下将其添加到标题中。你是救命恩人,伙计!在2018年,我在Firefox和Chrome上都一直在努力解决这个问题,这就解决了这个问题。
Connection: close