在window.open请求中添加标头的可能方法

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

这个答案here说我在使用window.open时无法传递标题。虽然我找不到任何说明这一点的文件。

真的不可能这样做。有没有可能的黑客?

我的客户端请求被发送到我无法控制的服务器。浏览器发送的用于打开pdf(window.open)的请求是在没有auth标头的服务器上接收的。因此,系统会提示用户输入用户名和密码。

有没有办法可以解决我的问题,并能够从我的Angular应用程序打开pdf。我也想知道window.open如何在内部工作,因为我在网上找不到它?

提前致谢

javascript browser http-headers window request-headers
1个回答
0
投票

我能够通过两次获取文件来解决问题,一次从服务器获取,一次从缓存中获取。这需要响应上的Cache-Control标头。我正在与Angular,AdalJS和Web Api合作,但这可能会更广泛地应用。

我使用AdalJS添加的auth标头的$ http调用来安全地检索文件。此响应由浏览器缓存。完成后,我使用window.open打开缓存的文件。

弹出窗口阻塞可能是个问题。如果您无法禁用阻止,请考虑在下载完成时显示第二个按钮以从中调用window.open。

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