在窗口中添加标头的可能方法.open request.



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

真的不可能吗。有没有可能的黑客攻击?

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

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

提前致谢

我能够通过两次获取文件来解决问题,一次来自服务器,一次来自缓存。 这需要在响应上具有缓存控制标头。 我正在使用Angular,AdalJS和Web Api,但这可能更广泛地适用。

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

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

最新更新