小编Fra*_*rti的帖子

看不到 http 帖子的标题 [Angular4]

这应该很容易解决,但我知道我的头脑无法找到解决方案。

我有一个这样的帖子:

getAccordo(filtro: Filter): Observable<Response>  {
    return this.http.post<Response>(`${this.ENDPOINT}/export`,
        filtro,
        {observe: 'response', responseType: 'blob' as 'json'}   
    )
        .catch(error => this.handleError(error));
}
Run Code Online (Sandbox Code Playgroud)

这就是我使用它的地方:

  public getAccordo(event: any): any {debugger;
    event.preventDefault();
    this.accordiService.getAccordo(this.filter).subscribe(
      res => {debugger;
        const blob = new Blob([res], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
        const anchor = document.createElement('a');
        anchor.href = window.URL.createObjectURL(blob);
        anchor.download = Utils.extractHeaders(res);
        anchor.click();
      },
      error => {
        console.log(error);
      }
    );
  }
Run Code Online (Sandbox Code Playgroud)

当我查看 chrome 控制台时,我可以看到在标题中有一个 content-disposition: attachment; filename="esportazione_accordi_20180905.xlsx"

但在我的“res”中,这是缺失的。

资源

id 喜欢做的是获取文件名并在anchor.download 中使用它。

感谢您的帮助,如果您需要更多信息,请询问。

编辑

这是我从响应标头中获得的标头,我什至看不到其中的一个:

在此处输入图片说明

在服务器端我补充说:.header("Access-Control-Expose-Headers", "content-disposition") 但它仍然不起作用

编辑2:

好的,我们越来越近了,我需要获取图片末尾的“文件名”值并将其分配给anchor.download。

在此处输入图片说明

http-post typescript angular

0
推荐指数
1
解决办法
974
查看次数

标签 统计

angular ×1

http-post ×1

typescript ×1