下面的问题发生的前提是你的请求为HTTPS
今天碰到一个非常纠结的问题,众所周知IE调试bug最痛苦不过。
有一段代码之前工作的好好的,这两天就不行了,但是在我本地运行没有问题,部署到服务器就不行,查了一下午都没有解决。
情况酱子的,本来要从后台要输出一个文件流,用来下载或者播放录音文件,但是IE却不能读取。开始以为是谁改动了后台的音频转换程序,发现没人动过。
我就找啊找啊,对比当前文件和之前的到底什么区别,直到最后人都疯了!
今天有同事告诉我说他们在spring中加了一个filter,就是对普通的数据请求加了no-cache,也就是说对于所有的action请求禁用缓存。
最终的结果证明就是由于这个原因导致了IE不能存文件,播放音频文件也是同理。
上面说的问题只有在https下才发生!
解决方式:在你的反馈中添加
response.setHeader("Pragma", "public");
response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0");
对于小文件你也可以这样:
response.setHeader("Pragma", "public");
response.setHeader("Cache-Control", "maxage=3600");
特此记录,顺便发下牢骚,你DY的IE!