【问题标题】:Express endpoint works in Postman but not in my appExpress 端点在 Postman 中有效,但在我的应用程序中无效
【发布时间】:2020-11-06 18:28:32
【问题描述】:

我正在开发一个同时具有前端和后端的应用程序。前面使用 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 的一个实例(在构造函数中注入)。

此服务的所有端点都可以正常工作,我以与上述相同的方式调用它们,但是对于此端点,订阅不起作用。我从来没有进入订阅。

【问题讨论】:

    标签: node.js angular rest express


    【解决方案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'
        });
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-19
      • 2021-02-20
      • 2021-04-03
      • 1970-01-01
      • 2020-04-06
      • 2020-06-18
      • 2018-07-14
      相关资源
      最近更新 更多