带有上下文/标题的$ window.open

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

我需要打开一个窗口才能从api端点下载文件。

目前我这样做:

let url = this.apiBaseUrl + "/exportToExcel/" + id;
this.$window.open(url, "_blank");

问题是:请求丢失了上下文(标头中的安全性),以便我的API控制器阻止请求。我该如何解决这个问题?

angularjs http-headers window.open
1个回答
1
投票

首先下载文件,然后打开它:

var url = this.apiBaseUrl + "/exportToExcel/" + id;
var headers = {
   //Put headers here
};
var config = { 
   responseType: 'blob',
   headers: headers
};
$http.get(url, config).then(function (response) {
    var blob = response.data;
    var u = URL.createObjectURL(blob);
    window.open(u,"_blank");
});

这将把文件作为blob获取,将其转换为object URL,然后在新窗口中打开它。

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