Microsoft Edge PDF内联问题

迈克·坎贝尔

我们的Rails Web应用程序使用wkhtmltopdf生成PDF并将其发送给客户端。在Edge以外的所有我们测试过的网络浏览器中都可以使用。

我们尝试以几种不同的方式呈现响应,这就是最初的方式:

kit = PDFKit.new(@html_content)
render text: kit.to_pdf, content_type: 'application/pdf'

这将打开PDF查看器,并且在我们测试过的每个浏览器中,PDF都能正确显示,但Edge却无法正常显示

在我们的应用程序日志中,有一个POST请求即表单提交,我可以看到我们的应用程序发送了pdf文件响应,然后对表单提交url有后续的GET请求,该错误是错误的,因为它不希望对该url进行任何GET请求。我不知道这是怎么回事。

该请求的响应头是:

Cache-Control: max-age=0, private, must-revalidate
Connection: Keep-Alive
Content-Length: 34865
Content-Type: application/pdf; charset=utf-8
Date: Thu, 18 Jun 2015 14:35:30 GMT
Etag: "4baf297d1866339e60e8e893300909a0"
Server: WEBrick/1.3.1 (Ruby/2.0.0/2013-06-27)
Set-Cookie: _APP_session=<long cookie>; path=/; HttpOnly
X-Request-Id: 617580a8-4d7d-43c4-8e49-aeaeafba7b79
X-Runtime: 21.868098
X-XSS-Protection: 1; mode=block
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-ua-compatible: chrome=1

我也尝试过这样使用send_data

send_data kit.to_pdf, type: 'application/pdf', disposition: 'inline'

这导致以下响应头,但最终出现相同的问题:

Cache-Control: private
Connection: Keep-Alive
Content-Disposition: inline
Content-Length: 34866
Content-Transfer-Encoding: binary
Content-Type: application/pdf
Date: Thu, 18 Jun 2015 14:39:42 GMT
Etag: "11db49f1a26444a38fa2b51f3c3336ed"
Server: WEBrick/1.3.1 (Ruby/2.0.0/2013-06-27)
Set-Cookie: _APP_session=<long cookie>; path=/; HttpOnly
X-Request-Id: 501d9832-b07e-4764-8ecc-f1c1e9a6421e
X-Runtime: 7.054236
X-XSS-Protection: 1; mode=block
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-ua-compatible: chrome=1

如果我Content-Disposition: inline从上面删除标题,则会弹出保存文件提示,并且下载文件的效果很好。不过,我们需要将其加载到浏览器窗口中。

我不认为它是该问题的重复部分,因为它可以在IE 9、10和11中使用,并且仅是Edge的问题。

迈克·坎贝尔

这是一个错误,但是Microsoft已在内部版本10158中修复它!:)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章