标准方案:ajax-heavy web应用程序,包含可以作为文件下载的报告。
问题:Internet Explorer使用黄色“安全栏”阻止文件下载。当您单击该栏并允许下载时,整个页面将刷新,输入的数据将丢失。
问题:什么算作可阻止的下载?它是否会查看Content-disposition: attachment
标题?它是否拒绝POST请求的下载?是否存在所有的情况,它只是打开没有黄色条的下载框?
答案 0 :(得分:5)
这与文件类型无关,而与之前的用户操作有关。如果检测到“用户启动的操作”是下载的直接原因(例如,用户直接点击了下载链接,或按下了按钮等),则会显示下载对话框而不是信息栏。 / p>
#1问题是使用用户点击导航到某个其他页面的网站(例如,感谢您下载“foo”)并让 页面尝试启动文件下载。由于导航导致User-Initiated标志丢失,因此信息栏会阻止下载。
一些背景: XPSP2引入了一个文件下载拦截器来打击恶意站点,这些恶意站点会在加载站点时向恶意软件下载提示,从而向用户发送垃圾邮件。犯罪分子希望用户可能无意中接受了恶意下载。添加文件下载阻止程序后,尝试在没有前面的UIA的情况下执行下载的页面将导致显示信息栏:
虽然合法网站避免使用此信息栏(只是单独下载作为UIA的直接结果)是微不足道的,但大多数合法网站都不愿意这样做。例如,一个主要目的是下载文件的网站最有动力去做一个愉快的用户体验,但是在阻止程序推出六年后,从Download.com下载仍会触发此信息栏。当用户尝试安装IE9平台预览版时,即使是新的IETestDrive.com网站也会显示此信息栏,因为当用户单击“安装预览”链接时,该站点将导航到新页面(而不是立即触发下载)。
答案 1 :(得分:0)
微软的定义是:
Internet Explorer将阻止文件 如果它出现,从下载 你没有请求该文件。这个 如果一个网站试图可能会发生 将文件下载到您的计算机 未经您的许可或您 请求了一个文件但是下载了 不要马上开始。
我以为我会帮助你提供案例的例子,以及我的结论和微软的定义,但我找不到可靠的联系。检查请求对“响应”的“内容类型”的“接受”,可能它们相矛盾。