背景:网站是配置在https环境访问的。网站里所有html,js,css访问正常。
问题:网页里有一个链接,是链接到站点下的一个pdf文档。点击链接时,文档在IE8,10显示不了。IE9不成功。
以下两种情况
1) 配置到web工程目录下的 help.txt https://portalserver.iimtest.local/sso/iimconsole/help/help.pdf 2) FJApache下直接放置的 help2.txt https://portalserver.iimtest.local/help2.pdf 两者的response中都有 Cache-Control: no-cache,no-store,max-age=0 Pragma: no-cache 【1】 help.txt (不能显示的場合) HTTP/1.1 200 OK Date: Thu, 04 Jul 2013 05:49:05 GMT Cache-Control: no-cache,no-store,max-age=0 Pragma: no-cache ETag: W/"1780993-1372742221000" Last-Modified: Tue, 02 Jul 2013 05:17:01 GMT Set-Cookie: JSESSIONID=70PJIPJ56SQ3GOR6COOMACR465HJ4DR2CKQM4E9KC9I66T7U76K3U08000600000.sso_mc_001; Path=/sso/iimconsole; Secure Content-Type: application/pdf Content-Length: 1780993 Keep-Alive: timeout=15, max=100 Connection: Keep-Alive 【2】 help2.txt ※貌似请求了多次。 HTTP/1.1 206 Partial Content Date: Thu, 04 Jul 2013 05:51:06 GMT Cache-Control: no-cache,no-store,max-age=0 Pragma: no-cache Last-Modified: Tue, 02 Jul 2013 05:17:01 GMT ETag: "18bdf1-1b2d01-4e08074736d40" Accept-Ranges: bytes Content-Length: 4353 Content-Range: bytes 1776640-1780992/1780993 Keep-Alive: timeout=15, max=100 Connection: Keep-Alive Content-Type: application/pdf
换了一种认证方式,结果可以读到了。出问题的方式:SSO认证。
原因是,文档在SSO的保护path下。如果在保护path外就木问题了。
Web服务器是IIS吗?
不是,是glassfish。IIS底下也有类似问题么?
@在大地画满窗子: 不说明一下Web服务器,别人不好回答
@dudu: 通过服务器日志和用fildder查看,服务器返回200,内容也成功。貌似是browser端的问题。
@在大地画满窗子: 返回的ContentType是什么?
@dudu: Content-Type: application/pdf;谷歌浏览器,测试正常
@在大地画满窗子: 在电脑上装个pdf阅读器试试
@dudu: adobe reader有的。
@在大地画满窗子: 可能与缓存有关,看一下这个帖子:Can't display PDF from HTTPS in IE 8 (on 64-bit Vista)
@dudu: dudu好人啊,辛苦辛苦,解决完后再给出确定的resolution,并发豆豆
@dudu: web站点下的pdf文档,怎样给他添加返回给客户端时的http头呢,如Accept-Ranges等的设置
@在大地画满窗子: 我对这个没经验
贴个截图或者代码
这个没法贴代码
@在大地画满窗子: 出问题不一定全是代码的问题,有可能有些配置,或者IE的设置上。
所以没有截图或者代码的话,问题不好找。。
建议找找相关博客。
@二十三号同学: 恩,的确是的。这个版本在http请求下是正常的。
在https+IE8/10才有问题。谷歌浏览器也是木问题的,现在觉得是IE的设置问题。
@二十三号同学: web站点下的pdf文档,怎样给他添加返回给客户端时的http头呢,如Accept-Ranges等的设置
http://tech.b3log.org/articles/2012/07/06/1341566782650.html
看看这个能不能解决
web站点下的pdf文档,怎样给他添加返回给客户端时的http头呢,如Accept-Ranges等的设置
@在大地画满窗子:
Response.AddHeader("Accept-Ranges","bytes");
试试
检查下IE的安全性设置。
web站点下的pdf文档,怎样给他添加返回给客户端时的http头呢,如Accept-Ranges等的设置