是否可以在 $window.open(url) 方法中发送标头信息

问题描述 投票:0回答:3

我正在使用 API 从服务器下载文件,因为我必须在标头中发送会话详细信息,我如何使用 angularjs 来做到这一点?请帮帮我。

提前感谢您的建议。

angularjs
3个回答
3
投票

- 无法使用

$window.open

直接发送标头

- 这是可能的,但不是直接的方式,如果您有服务器端控制,那么您可以在查询字符串中设置

header
值,并从后端的查询字符串中解析它。


2
投票

我不建议使用 window.open 传递参数。

但是你可以像这样使用 window.open 。

var params = {
 access_token: 'An access_token',
 other_header: 'other_header'
};

//Add authentication headers in URL
var url = [url_generating_pdf, $.param(params)].join('?');

//Open window
window.open(url);

请检查详细信息这里


0
投票

对于我来说。我将 window.open 替换为 fetch,如下所示:

    let accessToken = getAccessToken();
    let url = "/tex/file/pdf/full?proj_id=" + projectId;
    fetch(url, {
      method: "GET",
      headers: {
        "Content-Type": "application/json",
        Authorization: "Bearer " + accessToken,
      },
    })
      .then((response) => response.blob())
      .then((blob) => {
        var _url = window.URL.createObjectURL(blob);
        window.open(_url, "_blank")!.focus();
      })
      .catch((err) => {
        console.log(err);
      });

希望这可以帮助你。

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