#node.js #angular #rest #express
#node.js #угловой #отдых #экспресс
Вопрос:
Я работаю над приложением как с интерфейсом, так и с серверной частью. Передняя часть использует Angular, а задняя Node.js (Экспресс). Они взаимодействуют с Rest API.
Когда я запрашиваю эту конечную точку в Postman ou напрямую через свой веб-браузер, она работает, и я получаю правильный результат.
Однако, когда я запрашиваю это с одного компонента моего приложения, оно просто не работает.
Вызов здесь
console.log("Call GETSAVE");
this.rest.getSave(type, file).subscribe((data) => {
console.log(data);
});
Затем в моем сервисе
getSave(type: enumType, path: string) {
console.log(this.url 'saves/' type path);
return this.http.get(this.url 'saves/' type path);
}
с HTTP, являющимся экземпляром HttpClient (введенным в конструктор).
Все конечные точки этой службы работают, и я вызываю их так же, как указано выше, но для этой конечной точки подписка просто не работает. Я никогда не ввожу подписку.
Ответ №1:
Я наконец нашел ответ, и он довольно прост.
По умолчанию HttpClient будет анализировать данные как JSON. В моем случае это был не JSON, а текст. В результате произошла ошибка, поскольку не удалось проанализировать текст как JSON.
Чтобы устранить эту проблему, вам необходимо добавить параметр в запрос с «responseType».
В моем случае :
getSave(type: enumType, path: string) {
console.log(this.url 'saves/' type path);
return this.http.get(this.url 'saves/' type path, {
'responseType':'text'
});
}