Chrome 上的 Adobe 从 URL 打开 PDF 时会多次请求 PDF

问题描述 投票:0回答:1

我的应用程序出现问题,该问题似乎是由 Chrome 的 Adobe 插件中的缺陷引起的。从 URL 访问 PDF 时,Adobe 插件将多次请求 PDF。在不相关的第三方服务器上托管的 PDF 证实了此行为,例如:

https://css4.pub/2015/icelandic/dictionary.pdf

我还确认,禁用 Adobe 并使用 Chrome 内置的 PDF 阅读器会导致仅请求一次 PDF 的所需行为。

这对于我的应用程序来说是一个巨大的问题,因为我们会即时生成 PDF,因此 Chrome 上的 Adobe 中的这种行为将导致用户访问 PDF 时多次重新生成。

我研究了可能的解决方案,包括一些旧的 stackoverflow 文章:

Chrome 在下载 PDF 时发送两个请求(并取消其中一个) 为什么 chrome 对 pdf 文件执行 2 次请求

但是有关操作标头(特别是 Accept-Range、Max-age)的任何可能解决方案都无法解决该问题。

唯一有效的解决方法是设置响应标头 Content-Disposition: Attachment,这会导致浏览器仅下载文件。然而,这不是理想的行为。

有没有什么办法,通过标头或其他服务器端工作,让 Adobe 仅请求一次文档?

google-chrome pdf adobe
1个回答
0
投票

还尝试了多种解决方案,我通过在响应中添加

CacheControl
标头值成功获得了一个可行的解决方案。

        response.Headers.CacheControl = new CacheControlHeaderValue
        {
            MaxAge = TimeSpan.FromMinutes(1),
        };

我们的问题与您的问题略有不同;我们使用一次性令牌来检索 PDF,因此在处理第一个请求后,带有令牌的 URL 无法再次使用。

缓存行为使初始响应能够被缓存并由后续请求(1 分钟内)重用。

这在一定程度上适用于我们的用例。 PDF 最终被渲染,但不是在 adobe 插件中,这很好。

但是我们仍然看到多个请求到达服务器,但它不再阻止 PDF 显示。

© www.soinside.com 2019 - 2024. All rights reserved.