$window.open 有上下文 / headers

$window.open with context / headers

我需要打开 window 才能从 api 端点下载文件。

目前我正在这样做:

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

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

先下载文件,然后打开:

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, convert it to a object URL,然后在新的 window 中打开它。