Angular HttpClient HttpErrorResponse Неожиданный токен в JSON в позиции 0 - PullRequest
0 голосов
/ 13 декабря 2018

У меня есть приложение angular 7, отправляющее файл Excel и ожидающее файл Excel с моего сервера Express, например:

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);

Вот код с сервера Express, который отправляет файл:

server.js

res.download(pathToMyFile);

На внешнем интерфейсе ответHttpErrorResponse, и состояние ошибки:

SyntaxError: Unexpected token P in JSON at position 0

Я вижу, что содержимое текста ошибки - это содержимое файла Excel, что означает, что файл действительно отправляется обратно в браузер.Но по какой-то причине Angular, похоже, ожидает JSON и пытается его проанализировать.

Как видите, я добавил заголовок responseType: 'blob' в запрос POST, чтобы он мог ожидать возврата файла,но я все еще получаю эту ошибку.Есть что-то, что я забыл добавить к запросу на сообщение?

1 Ответ

0 голосов
/ 13 декабря 2018

Тип ответа не входит headers

Отправьте их как:

this.http.post(url, formData,  {headers: yourHeaders, responseType: 'blob'});
...