Express端点在Postman中有效,但在我的应用程序中无效



我正在开发一个同时具有前端和后端的应用程序。前面使用Angular,后面使用Node.js(Express(。它们与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的一个实例(注入到构造函数中(。

这个服务的所有端点都可以工作,我以与上面相同的方式调用它们,但对于这个端点,订阅就是不起作用。我从不参加订阅。

我终于找到了答案,而且很简单。

默认情况下,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'
});
}

最新更新