Почему httpclient в angular 4 предполагает, что запрос отправляет данные json

Я использую клиент angular 4 http для сервера, который возвращает текстовые данные, поэтому для этого я сделал что-то вроде ниже

this.http.get('assets/a.txt').map((res:Response) => 
res.text()).subscribe((data: any) => {
  console.log(data.text());
});

Я нигде не сказал, что ответ находится в формате json, но все равно вызывает следующую ошибку.

SyntaxError: Неожиданный токен a в JSON в позиции 0 в Object.parse() в XMLHttpRequest.onLoad

На каком основании эти люди предполагают, что ответ в формате json :)


person user2753523    schedule 12.12.2017    source источник
comment
На том основании, что это именно то, что задокументировано и должно делать. https://angular.io/guide/http   -  person jonrsharpe    schedule 13.12.2017


Ответы (1)


По умолчанию ответом нового HttpClient является JSON. Если вы хотите получить ответ в другом формате, вы можете установить его через requestOption responseType: 'text'. Вот дополнительная информация об этой реализации: https://angular.io/guide/http#requesting-non-json-data

Пример:

this.http.get('assets/a.txt', { responseType: 'text' }).map((res:Response) => 
res).subscribe((data: any) => {
  console.log(data);
});
person Gregor Doroschenko    schedule 12.12.2017
comment
В этом сообщении ничего не упоминается читать содержимое текстового файла с помощью httpclient">stackoverflow.com/questions/47053328/, но все же это принятый ответ, так что этот ответ правильный? - person user2753523; 13.12.2017
comment
@ user2753523 Ответ правильный в этом сообщении stackoverflow.com/questions/47053328/, потому что проблема в том, что текстовый файл не может быть найден. - person Gregor Doroschenko; 13.12.2017