Экспресс-конечная точка работает в Postman, но не в моем приложении

#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'
    });
}