2010-03-16 104 views
2

我发送一封包含URL到https网站的通讯邮件,然后重定向到pdf文档。通过https访问pdf网址

在首次调用URL时,用户会看到典型的HTTPS浏览器“安全警报”弹出窗口,选择“是”时,PDF显示失败。对失败的响应HTTP标头是:

HTTP/1.1 200 OK 
Server: ECS/HTTP-Server 
Date: Tue, 16 Mar 2010 15:57:26 GMT 
Content-type: application/pdf 
Content-language: en-US 
Set-cookie: JSESSIONID=0000r111cRz1Vc-PtCJg8Cdu4eR:-1; Path=/ 
Expires: Thu, 01 Dec 1994 16:00:00 GMT 
Cache-control: no-cache="set-cookie, set-cookie2" 
Connection: close 

URL的后续调用成功打开PDF(在这一点上,我们的会话cookie由最初的失败请求设置)。 HTTP报头的成功响应是:

HTTP/1.1 200 OK 
Server: ECS/HTTP-Server 
Date: Tue, 16 Mar 2010 16:53:03 GMT 
Content-type: application/pdf 
Content-language: en-US 
Connection: close 

的电子邮件客户端的Lotus Notes 6.5,其推出的IE6浏览器

任何想法?

+0

你能否提供浏览器的http请求? pdf是存储在http服务器还是https上?什么是“安全警报”? – osgx 2010-03-16 18:15:14

回答

0

问题是由于Struts servlet在包含PDF的HTTP响应中设置了一个新的会话cookie。这导致IE 6“放弃”PDF。

解决方案是使用本机servlet,它不会在HTTP头中发送set-cookie。

0

来自IE的安全响应可能来自自签名SSL证书。你是否有SSL证书,与标准CA签订?

您是公司的项目还是向任何用户开放?

PS:尝试在显示pdf之前添加额外的重定向。