2017-08-25 39 views
1

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

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

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

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

在此先感谢

+0

https://stackoverflow.com/questions/23138671/how-to-add-authentication-header-to-window-open –

+0

该规范没有给出任何线索,这是意图,虽然查询参数也是某种的头... https://www.w3schools.com/jsref/met_win_open.asp – Mijago

+0

可能重复的[window.open与标题](https://stackoverflow.com/questions/4325968/window-open-with-头文件) – Mijago

回答

0

我能够从缓存中获取文件的两倍,从服务器一次,一次解决问题。这需要在响应中使用Cache-Control标头。我正在使用Angular,AdalJS和Web Api,但这可能适用更广泛。

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

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