Angular HttpClient HttpErrorResponse JSON 中的意外令牌位于位置 0

Moo*_*ose 2 blob file-upload httprequest express angular

我有一个 angular 7 应用程序 POST-ing 一个 excel 文件并期望从我的 Express 服务器返回一个 excel 文件,如下所示:

myAngular.service.ts

const url = 'myEndpoint';
const formData: FormData = new FormData();
formData.append('xlsx', postedExcelFile, 'myFilename');
const httpOptions = {
headers: new HttpHeaders({
    responseType: 'blob'
  })
};
return this.http.post(url, formData, httpOptions);
Run Code Online (Sandbox Code Playgroud)

这是来自发送文件的 Express 服务器的代码:

服务器.js

res.download(pathToMyFile);
Run Code Online (Sandbox Code Playgroud)

在前端,响应是 anHttpErrorResponse和错误状态:

SyntaxError: Unexpected token P in JSON at position 0
Run Code Online (Sandbox Code Playgroud)

我可以看到错误文本的内容是 Excel 文件的内容,这意味着该文件确实被发送回浏览器。但是,出于某种原因,Angular 似乎期待 JSON 并尝试解析它。

如您所见,我已将responseType: 'blob'标头添加到 POST 请求中,以便它可以期待文件返回,但我仍然收到此错误。有什么我忘记添加到帖子请求中的吗?

xyz*_*xyz 7

响应类型没有进入 headers

将它们发送为:

this.http.post(url, formData,  {headers: yourHeaders, responseType: 'blob'});
Run Code Online (Sandbox Code Playgroud)