javascript - 在 window.open 请求中添加 header 的可能方法

标签 javascript browser http-headers window request-headers

这个答案here说我在使用 window.open 时无法传递 header 。尽管我找不到任何说明这一点的文档。

难道真的不能这么做吗?是否存在任何可能的黑客行为?

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

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

提前致谢

最佳答案

我通过两次获取文件来解决问题,一次从服务器获取,一次从缓存获取。这需要响应中包含 Cache-Control header 。我正在使用 Angular、AdalJS 和 Web Api,但这可能适用更广泛。

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

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

关于javascript - 在 window.open 请求中添加 header 的可能方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45875678/

相关文章:

javascript - Ajax 请求不中止

javascript - 将 JSON 中包含引号、URL 等的大型 Javascript 对象传递给 POST 调用

google-chrome - 有没有办法将消息附加到 tg ://handler url for telegram links on webpages?

android - Facebook 应用程序浏览器中的 HTML5 地理定位 - 无允许/阻止提示

javascript - 如何控制 Javascript POST 中的 header 属性?

javascript - 如何使用 eclipse-mars IDE 将 jquery 插件设置到我的 codeigniter 项目中

javascript - d3 包布局的地理排序功能

css - Google Fonts - 可变字体在 Windows 浏览器中不起作用

php - 什么时候可以未定义 HTTP 主机 header ?

ajax - 如何在氚中访问传入请求的 header ?