【问题标题】:IE8 :Internet Explorer was not able to open this Internet site. The requested site is either unavailable or cannot be foundIE8:Internet Explorer 无法打开此 Internet 站点。请求的站点不可用或找不到
【发布时间】:2013-04-08 08:22:40
【问题描述】:

这应该是IE8下载问题的老问题了。我使用 PHP 设置响应标头,如:

header("Pragma: public");
header("Expires: 0"); 
header("Content-type: application/octet-stream");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Length: ".strlen($content));
header("Content-Disposition: attachment; filename='$filename'");

连接被 Fiddler 近距离捕获。

当我尝试在 IE8(不是 SSL)中下载带有上述标题的文件时,消息框:

“Internet Explorer 无法打开此 Internet 站点。请求的站点不可用或找不到。”弹出并停止下载。

我在网上搜索并尝试了很多解决方案,但似乎没有一个有效。这个问题还有其他解决方案吗?

PS:我已经尝试过:删除响应头/在头中重置 contentType/将站点添加到受信任站点/将“不将加密页面保存到磁盘”设置为 true。

谢谢。

【问题讨论】:

  • 尝试删除这些标题,一次一个,看看哪个破坏了 IE。

标签: internet-explorer-8


【解决方案1】:

当标头中设置了 no-cache 时,IE 无法从 HTTPS 下载文件。试试这个页面http://blogs.msdn.com/b/ieinternals/archive/2009/10/02/internet-explorer-cannot-download-over-https-when-no-cache.aspx了解更多信息。

【讨论】:

    【解决方案2】:

    除了Le-roy的回答:

    我设置了

    Cache-Control: private, max-age=1
    

    这为我解决了问题。

    来自 Le-roy 的链接,如果设置了以下任何一项:

    Cache-Control header with the tokens no-cache, no-store
    Vary header that specifies almost anything 
    Pragma header that specifies exactly no-cache
    

    IE 下载将失败。

    【讨论】:

      猜你喜欢
      • 2011-03-25
      • 1970-01-01
      • 2010-10-04
      • 1970-01-01
      • 2012-02-07
      • 2011-01-03
      • 1970-01-01
      • 1970-01-01
      • 2013-09-17
      相关资源
      最近更新 更多