Edge不会在https

时间:2018-04-05 13:32:34

标签: pdf https certificate microsoft-edge

我有一个旧的Web应用程序,使用apache webserver面向weblogic服务器。用户使用客户端证书和密码进行身份验证,然后可以通过jsp页面和 https 访问pdf文件。在当前浏览器中重新测试应用程序时,我发现pdf:s不会显示在Edge中。

我试图删除不相关的代码。请注意,用户在到达edge_bug.jsp之前已使用SSL证书登录:

<%@ page %>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html"/>
        <title>edge_bug.jsp</title>
    </head>
    <body>
        <a href="javascript:void(0)" onclick="window.open('testpdf.pdf', 'PDFWin' + new Date().getTime(), 'scrollbars=yes,status=yes,width=370,height=550,resizable=yes')">Open in new window</a>
        <a href="testpdf.pdf" >Open in the same window</a>
   </body>
</html>

链接在IE和FireFox中正常工作,并显示pdf,但在Edge中显示一个空白的灰色窗口。

如果我将页面嵌入到框架集中(旧的东西,但应用程序已经过时了!)那么在同一窗口中打开pdf的链接就会开始工作。打开新窗口的链接失败的方式与以前相同。 edge_bug_frameset.jsp

<%@ page %>
<!DOCtype html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Frames</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
    </head>

    <frameset frameborder="0" framespacing="0" border="0">
        <frame marginwidth="0" marginheight="0" src="edge_bug.jsp" name="heading" noresize scrolling="no"/>
        <noframes>Your browser doesn't handle frames.</noframes>
    </frameset>
</html>

浏览器版本:

Microsoft Edge 41.16299.15.0

Microsoft EdgeHTML 16.16299

更新

我注意到行为因Web服务器中服务器证书的信任级别而异。

如果Web服务器具有不受信任的证书(红色屏蔽和地址栏旁边的“证书错误”文本),则不会显示pdf,行为如上所述。

如果Web服务器证书具有较低的信任级别(地址栏旁边的灰色挂锁),则pdf最初不会显示,但如果我首先选择始终允许弹出窗口,请等待10秒然后按F5 (重新加载)显示pdf。在随后的尝试中,pdf仍然不会在最初显示,但在我点击F5之后显示,我不再需要等待10秒才能完成。

如果Web服务器证书具有较高的信任级别(地址栏旁边的绿色挂锁),则pdf最初不会显示,但一旦我选择始终允许弹出窗口,它始终有效。

应该注意的是,即使在新窗口中打开pdf,这些新窗口也不是弹出窗口;当用户主动点击链接时,将打开一个新窗口。

3 个答案:

答案 0 :(得分:0)

对我而言,这似乎是 Microsoft Edge Edge HTML中的一个错误。

我们已通过解决方法解决了这个问题。我们建议用户避免使用Microsoft Edge作为我们的Web应用程序。

对于某些用户,Microsoft Edge是默认浏览器。我们已建议其IT部门使用企业模式站点列表强制将Internet Explorer用于我们的Web应用程序,直到Microsoft Edge在Chromium上运行。

答案 1 :(得分:0)

我遇到了一个类似的问题,即PDF无法在Edge中显示(仅),我遇到了这篇文章。此问题仅在生产中存在,而在本地运行代码时则不存在。最终,我们发现我们的问题与运行应用程序的apache服务器的配置有关。

原来,PDF是由服务器以块的形式发送到浏览器的。您可以在通过pdf文件获得的响应标头中看到此信息:Transfer-Encoding:分块。此外,没有发送内容长度标头。因此我们的假设是,边缘可能一直在等待更多的块到达,因为它不知道期望的长度。因此它将永远等待,因为没有更多的块即将来临。显然其他浏览器已经找到了解决此问题的方法,但Edge无法做到。

我们的解决方案是删除apache服务器中pdf文件的mod_deflate。通过删除此内容,它们不再分块发送,并且将内容长度标头添加到响应中。我希望这可以帮助面临类似问题的人。

答案 2 :(得分:0)

我认为Edge 80.x及更高版本的最新版本可能会解决此问题