【发布时间】:2023-03-11 08:10:02
【问题描述】:
我有这段代码:
Response.AddHeader("Content-type", "application/vnd.openxmlformats-officedocument.wordprocessingml.document");
Response.AppendHeader("Content-disposition", "attachment; filename=Bio.docx");
Response.BinaryWrite(lawyerBio.MakeDoc());
它在所有主流浏览器中都可以正常工作,但在 IE8 中却失败了。
IE8 正在做的是我第一次点击页面时,它会弹出一个错误提示:
Internet Explorer 无法从“站点域”下载“John-Smith”。
Internet Explorer 无法打开此 Internet 站点。这 请求的站点不可用或找不到。请试试 稍后再来。
如果我点击确定,然后刷新页面,它会很好地下载文件,文件名为 Bio.docx。它第一次失败,每次都失败,第二次,每次都成功。 John-Smith 是正在发生的页面的文件名,所以它看起来好像是第一次通过,它没有接受内容处置。
IE8 是否存在任何已知问题,或者你们可以看到我做错了什么?
干杯
更新
以下是与此文件一起发送的标头:
Array
(
[0] => HTTP/1.1 200 OK
[1] => Cache-Control: no-cache, no-store
[2] => Pragma: no-cache
[3] => Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document
[4] => Expires: -1
[5] => Server: Microsoft-IIS/7.5
[6] => Set-Cookie: website#sc_wede=1; path=/
[7] => Set-Cookie: website#lang=en; path=/
[8] => Set-Cookie: ASP.NET_SessionId=zabhwz55brq0ebfyjqn1c3bm; path=/; HttpOnly
[9] => Content-Disposition: attachment; filename=Bio.docx
[10] => X-AspNet-Version: 2.0.50727
[11] => Set-Cookie: SC_ANALYTICS_GLOBAL_COOKIE=323F079A90B545F39F8A6A9EB9B919DB; expires=Fri, 26-Oct-2012 17:44:57 GMT; path=/
[12] => Set-Cookie: SC_ANALYTICS_SESSION_COOKIE=118B88825A054BA1BAF327B0561C3EBB,1; path=/
[13] => X-Powered-By: ASP.NET
[14] => Date: Thu, 27 Oct 2011 17:44:57 GMT
[15] => Connection: close
[16] => Content-Length: 169581
)
【问题讨论】:
-
您会注意到 IE8 并未与“所有主要浏览器”混为一谈;)
-
您使用的是 SSL 还是 Cache-Control 标头?
-
没有 SSL,但我会从 FF Web Dev 获取标题的副本并将它们附加到原始问题中。
标签: c# asp.net file-io http-headers