Angular не может декодировать дефляцию, gzip

В настоящее время я начинаю с Angular. Вместе с моей командой мы готовим POC для обмена мнениями в нашем приложении. Короче говоря, мы используем модуль другой команды со всем механизмом отправки ответов и так далее, поэтому наша работа в бэкэнде заключается только в создании конечной точки, получении данных и вызове надлежащего метода из этого «модуля другой команды». В прошлый раз они изменили кодировку содержимого с «UTF-8» на «gzip, deflate», и с тех пор наши вызовы Angular rest перестали работать. Каждый запрос, отправленный на бэкэнд, приводит к:

net::ERR_CONTENT_DECODING_FAILED 200 (OK)
HttpErrorResponse {headers: HttpHeaders, status: 0, statusText: "Unknown Error"

Я изменил этот внутренний модуль REST обратно на отправку ответа с кодировкой «UTF-8», и все снова заработало правильно.

Я за последние несколько дней посмотрел везде и так и не разобрался. Вот код:

вызов конечной точки:

private loadResulst() {
  const URL = '/results/v1';
  this.apiService.getResource(URL).subscribe(data => {
    let newValues = [{id: 0, name:''}]
    data['resultList'].forEach((value: string, index: number) => {
      newValues.push({ id: index + 1, name: value });
    })
    this.results = newValues;
  });
}

apiService.getResource:

getResource(resourceUrl: string): Observable<Object> {
  const httpOptions = { headers: this.headers };
  return this.httpClient.get(this.apiUrl + resourceUrl, httpOptions);
}

заголовки запроса:

Accept: application/json, text/plain, */*
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9,pl;q=0.8
Connection: keep-alive
Host: localhost:4200
Referer: http://localhost:4200/
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36

заголовки ответа:

Access-Control-Allow-Origin: *
connection: close
content-encoding: deflate, gzip
content-length: 69
content-type: application/json
date: Fri, 21 Feb 2020 07:59:11 GMT
server: Apache-Coyote/1.1
X-Powered-By: Express
x-ua-compatible: IE=9

При подходе к данным через Postman с теми же заголовками я получаю данные без проблем.


person Bartosz Gniado    schedule 21.02.2020    source источник


Ответы (1)


Выяснил. Согласно этой теме SO, "Это происходит, когда ваш HTTP заголовки запроса утверждают, что содержимое закодировано с помощью gzip, но это не так».

person Bartosz Gniado    schedule 21.02.2020