【发布时间】:2014-11-13 18:58:18
【问题描述】:
我有一个笨蛋。在我们的测试服务器上安装了 CF11。做了一些回归测试并遇到了问题。我有一个 .cfm 可以将信息下载到 excel 中。它在 CF10(和以前的版本)中呈现良好。在 CF11 中,它在 IE10 和 FireFox 中呈现良好。然而,它在 IE8 中严重失败,并且由于我们的大多数用户仍需要使用 IE8,因此这是一个大问题。
这是设置 excel 转储的代码 - 页面名称是 show_table.cfm:
<cfif IsDefined('URL.ExcelDump')>
<cfheader name="Content-Disposition" value="filename=#Session.utilstablename#.xls">
<cfcontent type="application/vnd.ms-excel">
</cfif>
我已经关闭了这些线路 - 以下错误没有变化:
<META http-EQUIV="Pragma" CONTENT="no-cache">
<META http-EQUIV="cache-control" CONTENT=" no-store,no-cache, must-revalidate">
这是我期望发生的——IE10 会执行类似的打开/保存面板:
这是 IE8 中发生的情况:
请注意,失败的文件名与尝试下载的 .cfm 页面相同。就像它没有看到 cfheader 将其设置为预期的名称(对于这个特定的下载应该是 er_quality_items_view.xls)。
有什么智慧之言吗? IIS 中是否有可能影响此行为的设置(我们使用 8)?
【问题讨论】:
-
我刚刚尝试取出 cfheader..FF 仍然可以正常渲染,但 IE8 仍然失败...
-
这是在 SSL 后面吗? IE8 抱怨 no-cache 标头。尝试将缓存控制标头设置为私有并删除编译指示标头。
-
@abbottmw - 是的..这在 SSL 后面。我注释掉了两个元标记,没有任何区别。
-
您可以使用Fiddler 之类的工具并查看响应标头以查看正在设置的标头吗?您可以进入 IIS 并查看为站点设置的 HTTP 标头并修改它们。 IE8 抱怨 SSL 下的任何无缓存标头。
-
会尝试...但是如果没有无缓存记录,并且它仍然不会执行 cfcontent 到 excel,关于如何继续的任何建议?我曾尝试使用 JavaScript 例程导出到 excel,但没有比 CF 更成功...
标签: coldfusion internet-explorer-8 coldfusion-11