Angular-连接到代理服务器并获得响应,但随后在其他时间有效的api调用上显示错误

时间:2018-08-23 23:14:25

标签: angular

当我请求客户数据时,应用程序会进行api调用。对于一个客户来说,它可以工作,但对于另一个相同的api调用,使用下面使用相同代理完全相同的方式将失败。

意识到在这种情况下,JSON响应在其末尾附加了错误(在json文件中的数组末尾连接),因此给出了JSON错误。但是,对另一个客户的相同要求并不能做到这一点。

在项目根目录中添加了proxy.config.json

{
    "/api/*": {
        "target": "http://<server_ip_address>:<port>",
        "secure": false,
        "changeOrigin": true,
        "logLevel": "debug"
    }
}

然后在start.package.json中添加了代理配置

"scripts": {
  "ng": "ng",
  "start": "ng serve --proxy-config proxy.config.json --extract-css=true",
  "build": "ng build --prod --aot=false --output-path dist",
  "test": "jest",
  "codecoverage": "jest --coverage",
  "test:watch": "jest --watch",
  "lint": "ng lint",
  "e2e": "ng e2e"
    },

错误:

  

[HPM]尝试从中代理请求/ api / v1 / login时发生错误   本地主机:4200到http://:(ECONNRESET)(https   ://nodejs.org/api/errors.html#errors_common_system_errors)

如果我检查chrome网络控制台,则请求状态为OK。但是在“预览”选项卡中,它显示来自服务器的JSON,然后附加以下字符串

  

尝试代理请求时发生错误   / api / getList?offset = 0&limit = 50从localhost:4200到   http://localhost:8080

尴尬!

相同的代码库在Linux计算机中不会出错。我有Mac OS。同样,相同的api不会在其他客户的getingList上给出错误。

有一个类似的问题,但是所有答案都不能解决问题。我已经尝试了所有合适的方法。

1 个答案:

答案 0 :(得分:0)

我太绝望了,我就此事提出了另一个问题,现在我有了答案。

已添加

  "headers": {
    "Connection": "keep-alive"
  }
对proxy.config.json上的api值对象的

选项,现在我没有收到任何错误。包括数据加载,我可以毫无问题地运行PUT调用。