我正在使用 API 从服务器下载文件,因为我必须在标头中发送会话详细信息,我如何使用 angularjs 来做到这一点?请帮帮我。
提前感谢您的建议。
否 - 无法使用
$window.open
直接发送标头
是 - 这是可能的,但不是直接的方式,如果您有服务器端控制,那么您可以在查询字符串中设置
header
值,并从后端的查询字符串中解析它。
我不建议使用 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);
请检查详细信息这里
对于我来说。我将 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);
});
希望这可以帮助你。