为了账号安全,请及时绑定邮箱和手机立即绑定

无法下载 xml.gzip 文件

无法下载 xml.gzip 文件

湖上湖 2023-02-24 15:48:10
我将下载一个包含响应的 xml.gzip 文件:缓存控制:无缓存、无存储、max-age=0、必须重新验证连接:保持活动状态Content-Disposition:附件;文件名=ERKENNUNGSMODELL_CI.9.221_part_1_of_1.xml内容编码:gzip内容长度:1323内容-MD5:fIHw5FJ1KWkBHsZ+jbkuwg==内容类型:应用程序/xml日期:2020 年 9 月 10 日星期四 07:56:46 GMT过期:0保持活动:超时=60Pragma:无缓存严格传输安全:max-age=31536000;包括子域X 内容类型选项:nosniffX-XSS-保护:1;模式=块我的代码是:download(url) {let downloadHeaders = new HttpHeaders({ 'content-type': 'application/xml; charset=UTF-8',  'authorization': "Bearer " + localStorage.getItem('token') });downloadHeaders.append('Access-Control-Allow-Origin', '*');this.httpClient.get('/rest/ui/download/product-part/' + url, { headers: downloadHeaders }).subscribe(response => {    console.log(response);    this.downLoadFile(response, "application/xml");  });}  downLoadFile(data: any, type: string) {let blob = new Blob([data], { type: type});let url = window.URL.createObjectURL(blob);let pwa = window.open(url);if (!pwa || pwa.closed || typeof pwa.closed == 'undefined') {  alert( 'Please disable your Pop-up blocker and try again.');}}使用新的 HttpHeaders({ 'content-type': 'application/xml; charset=UTF-8', 'authorization': "Bearer " + localStorage.getItem('token') });在 console.log 中,文件显示正确。但下载不起作用:解析“myUrl”期间的 Http 失败
查看完整描述

1 回答

?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

如前所述,您必须添加reponseType: 'blob'到获取选项中。


这是我在我的一个应用程序中处理它的方式,const data从downloadAttachment. 这可能不是最干净的方法,但它确实有效。


  async downloadAttachment(id: number, filename: string) {

    const data = await this.front.downloadAttachment(id);

    const downloadURL = window.URL.createObjectURL(data);

    const link = document.createElement('a');

    link.target = '_blank';

    link.href = downloadURL;

    link.download = filename;

    link.click();

  }

检查它是否有帮助。如果您有任何问题,请在这里提问。


查看完整回答
反对 回复 2023-02-24
  • 1 回答
  • 0 关注
  • 144 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信