【问题标题】:nginx + angular 9 error in production for mobile browsers移动浏览器生产中的 nginx + angular 9 错误
【发布时间】:2020-05-17 11:58:43
【问题描述】:

我在生产中遇到了一个错误,我无法弄清楚它的原因。

我正在开发的网站是一个新项目http://basefounder.com

我提供了一项服务,为希望获得更新的人收集邮件列表。

当我在开发中使用该网站时,我可以毫无问题地做到这一点,但是当我尝试从生产中做到这一点时,我收到以下错误。

{
  "headers": {
    "normalizedNames": {},
    "lazyUpdate": null,
    "headers": {}
  },
  "status": 0,
  "statusText": "Unknown Error",
  "url": "http://localhost:4040/api/user/email",
  "ok": false,
  "name": "HttpErrorResponse",
  "message": "Http failure response for http://localhost:4040/api/user/email: 0 Unknown Error",
  "error": {
    "isTrusted": true
  }
}

为了帮助在生产环境中调试,我在 FE 页面中添加了从 Node 服务器收到的错误,就在加入邮件列表按钮下方。

希望有人有任何想法,如果您需要更多信息,请询问我,我会提供。

谢谢 多梅尼科

【问题讨论】:

    标签: node.js angular nginx production-environment angular9


    【解决方案1】:

    您似乎正在从生产前端向开发后端 URL 发出 HTTP 请求。尝试从我的桌面浏览器 (Firefox) 添加电子邮件时,我收到了同样的错误

    检查您是否在 Angular 应用程序中正确配置了 URL。

    这也是一个 OPTIONS 请求,这很可能意味着它是一个 preflight request 由于 CORS。

    【讨论】:

    • 感谢您的回答。但是我的节点服务器在我的 Angular 应用程序的同一台机器上运行,这就是它在该端口上调用 localhost 的原因。我不明白这个问题的原因以及为什么我的笔记本电脑没有收到这个错误
    • 因为您可能正在同一台机器上运行节点服务器。所以目前只能在机器上使用。
    • @DomenicoVitoScalera localhost 对应于您显示页面的机器或设备。您需要将其替换为人们可用的一些域名
    • @MichaelD 和大卫感谢您的 cmets。如果我明白你在说什么,我应该叫'basefounder:4040/api/user/email'而不是'localhost:4040/api/user/email'?目前,我使用 nginx 将流量从端口 80 重定向到我的 Angular 应用程序,并提供 Angular 应用程序的本地主机和端口。在这种情况下,由于 Angular 应用程序和节点服务器都运行在同一台机器上(显然有两个不同的端口),为什么我应该公开服务器并且不能只引用我的服务器给 [link](localhost:4040)?
    • 无论如何你的回答帮助我更好地理解了这个问题(它在我的笔记本电脑上工作的原因是因为我让节点服务器在后台运行)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-11
    • 1970-01-01
    • 2020-06-24
    • 2014-10-06
    • 2020-07-14
    相关资源
    最近更新 更多