IE浏览器查看服务器图片失败

业务场景

自研影像系统,使用IE处理器打开服务器返回的图片链接时,打开失败,且服务器出现错误日志
请添加图片描述

2021-05-18 20:11:22.643 [http-nio-8226-exec-10] ERROR c.c.s.impl.ImageViewServiceImpl - java.io.IOException: 你的主机中的软件中止了一个已建立的连接。
org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。
	at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:351)
	at org.apache.catalina.connector.OutputBuffer.appendByteArray(OutputBuffer.java:746)
	at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:675)
	at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:386)
	at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:364)
	at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:96)
	at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:645)
	at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:645)
	at com.chic.service.impl.ImageViewServiceImpl.viewPic(ImageViewServiceImpl.java:91)
	at com.chic.controller.image.ImageViewController.viewImage(ImageViewController.java:41)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190)
	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)
	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:105)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:879)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:793)
	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)

原因

IE按照响应头的Content-Type去解析图片,然而图片的真正格式与响应头的声明不一致(比如图片实际是jpg,而响应头是 image/png)。当响应头X-Content-Type-Options = nosniff时,会导致IE主动停止解析。
请添加图片描述

解决方案

/*
设置响应头:默认值是nosniff (禁止资源类型嗅探)
值为nosniff时,如果响应头Content-Type与实际文件类型不一致,浏览器会中断解析,而不是尝试读取文件内容去解析。
例如 图片格式是jpg,返回的Content-Type是image/png,则IE浏览器解析图片会失败。(与浏览器的支持有关,谷歌不会受影响)
因此将此响应头设置为空
*/
response.addHeader("X-Content-Type-Options","");
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
软件介绍: Avant浏览器的用户友好界面为你浏览体验带来清晰而有效的全新体验,频繁的升级稳步的提高了他的可靠性。 多进程:多进程的设计给你带来不崩溃、不死锁、没有内存泄露的网络浏览器体验和高稳定性。当一个标签死锁的时候,他不会导致你整个浏览器没响应或者其他页面死锁。 在线书签:通过Avant的在线存储可以任何地方,办公司、家里、网吧访问你的书签,而且不需要担心重装系统时丢失数据。加密的独立书签文件格式可以在公用电脑上保护你的隐私。 自动填充:忘记了网页密码?Avant浏览器可以为你记住密码。你只需要简单的一击就可以填写网页表格。并且你可以设置一个主密码来保护你的所有的表单信息。 Flash动画过滤:正在经历使用GPRS/3G连接网络时网页加载速度慢?网页中85%以上的flash动画都是广告。这些flash文件相当大,通常占你所访问网页大小的90%以上。使用Avant浏览器你只需要简单的一击就可以通过阻止下载这些Flash文件来节省带宽。 广告/弹窗过滤器:点击一下鼠标轻松过滤不需要的广告横幅和弹出页面。 鼠标手势:如果你在网页上点击鼠标中键,链接会在一个新窗口中打开并在后台运行。这个功能在打开论坛帖子的时候非常有用。Avant 浏览器同样具有自定义鼠标手势的功能,使用这种功能,你可以移动鼠标,轻松操作浏览器。 隐私浏览:作为一个隐私模式的设计,Avant浏览器不会在你的电脑中保存网页数据。因此,在你使用隐私浏览期间,与你共用电脑的人将不能看到你访问过哪些网站、网页和文件。 更新日志: [Fix]联想笔记本电脑上页面中出现空白区域的问题。 [Fix]直接点击非当前浏览标签的关闭按钮不能关闭标签。 [Fix]访问基本验证和windows集成验证的网站自动登出。 [Fix]使用代理浏览器网页,浏览器重启后总是提示重新输入帐号和密码。 [Fix]导入Firefox书签失败。 [Fix]XP系统上通过浮动工具栏保存图片失败。 [Fix]从全屏模式下返回工具栏移动位置。 [Fix]全屏模式下Windows 任务栏仍保持在桌面。 [Fix]选项“启用鼠标滚轮切换当前窗口”在全屏/全桌面模式下失效。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值