【问题标题】:Angular - Connects to Proxy server and gets response but then shows Error on an api call which works other timesAngular - 连接到代理服务器并获得响应,但随后在其他时间有效的 api 调用上显示错误
【发布时间】:2019-01-30 09:40:18
【问题描述】:

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

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

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

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

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

"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 时发生错误 localhost:4200 到 http://: (ECONNRESET) (https ://nodejs.org/api/errors.html#errors_common_system_errors)

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

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

尴尬!!

相同的代码库在 Linux 机器中不会出错。我有 Mac 操作系统。同样的 api 也不会在为其他客户获取列表时出错。

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

【问题讨论】:

    标签: angular


    【解决方案1】:

    我太绝望了,以至于我在这个问题上提出了另一个问题,现在我有了答案。

    添加

      "headers": {
        "Connection": "keep-alive"
      }
    

    proxy.config.json 上的 api 值对象的选项,现在我没有收到任何错误。包括数据加载,我可以毫无问题地运行 PUT 调用。

    【讨论】:

      猜你喜欢
      • 2017-10-15
      • 2021-09-03
      • 2023-03-17
      • 1970-01-01
      • 2022-07-25
      • 1970-01-01
      • 2014-11-29
      • 2021-10-05
      • 2017-03-18
      相关资源
      最近更新 更多