ColdFusion 11 cfheader在IE 8中未正确传递

我有一个击球手。 在我们的测试服务器上安装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执行类似的打开/保存面板: Firefox的作​​品

这里是在IE8中发生的事情: ie8下载失败

请注意,失败的文件名与尝试执行下载的.cfm页面相同。 它就像它没有看到cfheader将其设置为预期的名称(对于此特定下载应该是er_quality_items_view.xls)。

任何智慧的话语? 是否有IIS中的设置(我们使用8)可能会影响此行为?


具体到你的问题是一些版本的IE的行为,按照MVP Erik Law(下面的链接):

“如果用户尝试通过HTTPS连接下载文件,则任何防止缓存的响应标头都将导致文件下载过程失败。”

因此,它实际上是提供Cache-Control标头令牌,例如no-cacheno-storeVary头文件或臭名昭着的Pragma no-cache头文件,这些标头会导致浏览器在通过ssl时中止下载。 假设Erik Law的博客链接经受了时间的考验,您可以通过下面的链接阅读关于它的全部内容。

因此,整个站点范围的CFHEADER缓存设置可能总体上不错,但是在下载文件时您需要清除所有内容。 尝试在你的下载CFML代码上放置这个小宝石:
<cfset getPageContext()。getResponse()。reset()/>
并再次测试。

http://blogs.msdn.com/b/ieinternals/archive/2009/10/03/internet-explorer-cannot-download-over-https-when-no-cache.aspx
https://groups.google.com/forum/?fromgroups#!topic/openbd/ke6cSVHXMfM

链接地址: http://www.djcxy.com/p/74067.html

上一篇: ColdFusion 11 cfheader not being passed correctly in IE 8

下一篇: cflocation no longer working in CF10