代码之家  ›  专栏  ›  技术社区  ›  Paul

通过https url访问pdf

  •  2
  • Paul  · 技术社区  · 15 年前

    我发送了一封新闻邮件,其中包含到一个https网站的URL,然后重定向到一个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(此时,我们已经通过初始失败请求设置了会话ID 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
    

    电子邮件客户端是LotusNotes6.5,它启动了IE6浏览器。

    有什么想法吗?

    2 回复  |  直到 15 年前
        1
  •  0
  •   osgx    15 年前

    来自IE的安全警报可能来自自签名的SSL证书。你有用标准CA签名的SSL证书吗?

    你是项目法人还是对任何用户开放?

    PS:在显示PDF之前,请尝试添加其他重定向。

        2
  •  0
  •   Paul    15 年前

    问题是由于struts servlet在包含PDF的HTTP响应中设置了一个新的会话cookie。这导致IE6“删除”了PDF。

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

    推荐文章