gpt4 book ai didi

angularjs - 如何将身份验证 header 添加到 $window.open

转载 作者:行者123 更新时间:2023-12-02 21:49:52 24 4
gpt4 key购买 nike

我有 angularjs 应用程序,用户输入保存到数据库的数据,然后在服务器端将其编译成 pdf 文件。所有访问都需要适当的身份验证 header 。填写所需数据后,用户按下按钮保存数据,然后检索 pdf 文件。理想情况下,我在 angularjs 应用程序中调用 $window.open(url_generate_pdf) 。这运行良好并在另一个窗口中打开,但是如何向此 $window 请求添加身份验证 header ?据我了解,我无法下载 pdf,并使用 ajax 打印它,所以我缺少此身份验证。或者是否有其他方法从服务器调用 url,并使文件在另一个窗口中打开?

最佳答案

我认为我应该用正确且安全的答案更新这个老问题。

您无法在 window.open 执行的 HTTP GET 请求中添加任何 header

发出经过身份验证的请求的安全方法是将身份验证 token 设置到请求 header 中,并避免将其暴露到 URL 中,正如我之前的回答所建议的(自从然后)。

要使用 AngularJS 从经过身份验证的服务器下载 PDF(或任何其他二进制数据),您应该:

  1. 向资源发出 HTTP GET 请求 sending the authentication token in a header ,设置其 responseType二进制数据类型,例如 blobarraybuffer
  2. Download the binary data in a file使用浏览器中的“另存为”对话框,通常为二进制数据创建下载链接并单击它。

我希望这个答案能够消除对此问题的疑虑,并提供一种从经过身份验证的 REST API 下载资源的安全方法。

关于angularjs - 如何将身份验证 header 添加到 $window.open,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23138671/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com