2010-08-26 112 views
1

标准方案:带有可作为文件下载的报告的ajax重型Web应用程序。哪些文件下载被Internet Explorer的安全栏阻止?

问题:Internet Explorer使用黄色的“安全栏”阻止文件下载。当您点击栏并允许下载时,整个页面会刷新并且输入的数据会丢失。

问题:什么算作可阻止下载?它是否查看Content-disposition: attachment标题?它拒绝从POST请求下载吗?是否有任何在所有其中它只是打开没有黄色栏的下载框?

回答

5

这与文件类型无关,并且与用户操作前面的内容有关。如果检测到“用户发起的动作”是下载的直接原因(例如,用户直接点击下载的链接或按下按钮等),则显示下载对话框而不是信息栏。

#1问题是,使用用户的点击浏览一些其他网页(例如感谢您下载“富”),并有页尝试启动的文件下载网站。由于导航导致User-Initiated标志丢失,因此信息栏会阻止下载。

一些背景资料: XPSP2出台了文件下载拦截打击恶意站点,作为网站加载下载提示的恶意软件,将垃圾邮件的用户。罪犯希望用户可能无意中接受恶意下载。在添加了文件下载阻止程序之后,尝试执行下载而没有先前的UIA的页面将导致显示信息栏:

尽管合法网站避免此信息栏的琐碎操作(只需启动作为UIA直接结果的单一下载),大多数合法网站都不会这么做。例如,一个主要目的是下载文件的网站有最大的动力来提供令人愉快的用户体验,但是从Download.com下载仍然会在引入阻止程序六年后触发此信息栏。即使是新的IETestDrive.com网站,当用户尝试安装IE9平台预览版时,也会显示此信息栏,因为当用户单击“安装预览”链接时,该网站会导航到新页面(而不是立即触发下载)。

+0

在我的情况下,我根据表单中选择的用户选择从Javascript生成URL。然后我生成一个表单并提交。所有这些都是在'onclick'处理程序中完成的,但是该栏仍然会触发。 :( – 2010-08-30 07:28:55

+0

我必须使用一个POST表单,因为还有一个相当大的字段与一些序列化状态。大约10KB。它不适合在URL中。 – 2010-08-30 07:55:28

+0

不,等等...在某些情况下,在我提交表单之前仍然存在AJAX请求,因此提交不是用户发起的操作。该死的... – 2010-08-30 08:16:31

0

微软的定义是:

Internet Explorer将无法下载拦截文件 如果它看起来 你没有请求的文件。如果一个网站尝试 未经您的许可下载文件到您的计算机 或如果您请求一个文件但 不立即启动,则可能发生此 。

我想我会帮助你一个案例,我的结论和微软的定义,但我找不到一个坚实的连接。根据响应的“内容类型”检查请求的“接受”,也许它们相互矛盾。

相关问题