У меня есть служба HTTP, которая просто запрашивает данные с сервера и возвращает результат. Во время разработки моего проекта на сервере могут возникать различные ошибки, и он не всегда возвращает JSON, поэтому мне нужно получить тело ответа в виде строки.Как получить тело ответа в виде строки?
У меня есть этот кусок кода, который запрашивает данные:
getVersions(entryURLName: string) {
return this._http.get('/ajax/entry/' + entryURLName + '/versions')
.map((response: Response) => <Version[]>response.json())
.do(data => console.log(data))
.catch(this.handleError);
}
И в обработчик ошибок у меня есть это:
handleError(error: Response) {
console.log(error);
var errorMessage;
try {
let errorObj = error.json().error;
errorMessage = errorObj;
} catch (e) {
errorMessage = error.text();
}
return Observable.throw(errorMessage);
}
Я прочитал в documentation что Response
объект имеет метод text()
который возвращает тело как строку, но на самом деле переменная error
здесь не имеет этого метода. Может быть, я делаю что-то не так?
Update # 1:
Вот что console.log(error);
отпечатки (Safari):
Что такое 'console.log (ошибка);' print? –
@ThierryTemplier Обновлен мой вопрос. Вот скриншот из консоли Safari. – Randex