Поскольку тип ответа по умолчанию для HttpClient - JSON , ожидается, что объектом ответа будет значение json.
Но наш ответ был string .Это было причиной ошибки.
Когда API возвращает данные не в формате JSON, нам нужно указать их, используя опцию responseType
в запросе get
.
Существуют различные варианты, такие как'blob
', 'text
', 'arraybuffer
', 'json
'
Для приведенного выше случая, если мы не задаем параметр типа вызова get в виде строки (get<string>
), нам просто нужно установить responseType как {responseType : 'text'}
return this.httpClient.get(`${this.baseUrl}/account/getname`,
{responseType : 'text' }).subscribe(
(data)=> console.log(data),
() => console.log("Failure")
);
Но если мы укажем параметр типа вызова get в виде строки, будет ошибка
Type '"text "'нельзя назначить типу" json "
Во избежание этого нам нужно изменить параметр requestType
на {responseType : 'text' as 'json'}
return this.httpClient.get<string>(`${this.baseUrl}/account/getname`,
{responseType : 'text' as 'json'}).subscribe(
(data)=> console.log(data),
() => console.log("Failure")
);