我需要打开一个窗口才能从api端点下载文件。
目前我正在这样做:
let url = this.apiBaseUrl + "/exportToExcel/" + id;
this.$window.open(url, "_blank");
问题是: 该请求会松开上下文(标头中的安全性),以便我的API控制器阻止该请求。 我该如何解决这个问题?
答案 0 :(得分: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,然后在新窗口中打开它。