【问题标题】:Not able to make api calls using https to application on same server无法使用 https 对同一服务器上的应用程序进行 api 调用
【发布时间】:2018-12-04 06:47:58
【问题描述】:

我已经使用 apache2 在服务器上部署了我的 Angular 应用程序。此应用程序与部署在同一服务器上的节点应用程序通信,该服务器再次与部署到同一服务器的 java 应用程序通信。所有应用程序都在不同的端口上运行。

现在,如果我发出“http::/path 之类的 http 请求”,我就能得到响应。 现在我为我的域购买了 ssl 证书。从这里我可以访问前端,但 api 调用失败。 我正在拨打“https:domainname.com:port/path”之类的电话,但它不起作用,但如果我像“http:ipaddr:port/path it works”一样从休息的客户端拨打电话,但在 UI 上它会抛出错误说“他的页面在“https://domain.in/”通过 HTTPS 加载,但请求了不安全的 XMLHttpRequest 端点 http:ip:port”此请求已被阻止;内容必须通过 HTTPS 提供。 无法解决这个问题。请提出解决方案。

【问题讨论】:

  • 能否请您澄清请求的来源和目标,即从哪个服务器到哪个服务器?
  • 三个应用都运行在同一台服务器上
  • 是的,但是请描述一下当您说“现在如果我发出“像 http::/path 这样的 http 请求”我能够得到响应时的含义。哪个客户端连接哪个服务器(包括地址、端口等)
  • 我有一个前端,它部署在 apache2 的 80 端口上,这会向节点层发出请求,该节点层使用 pm2 部署在 3200 端口上,该层再次与使用 tomcat 部署的 java 层通信端口 8080
  • 我的域 h=name 有一个 ssl 证书,当我访问该网站时,它确实显示 https,但是当我使用 https:domain.com 访问后端时,即使我添加了它也会出错cors 过滤器以允许访问

标签: node.js angular ubuntu ssl-certificate


【解决方案1】:

您需要添加正确的 CORS 标头。 看看https://developer.mozilla.org/de/docs/Web/HTTP/CORS

【讨论】:

  • 我添加了 cors 过滤器以允许来自同一域的请求
【解决方案2】:

错误

“'https://domain.in/' 的页面通过 HTTPS 加载,但请求了不安全的 XMLHttpRequest 端点 http:ip:port” 此请求已被阻止;内容必须通过 HTTPS 提供

只是在 https 站点上并尝试对非 https 站点进行 XHR 的结果。因此,一旦您为所有服务器正确设置 https 并将站点配置为在制作 xhr 时使用 https://... url,此错误应该会消失。

【讨论】:

    猜你喜欢
    • 2016-12-28
    • 2019-08-21
    • 2017-05-03
    • 2013-05-06
    • 2019-02-02
    • 2011-12-20
    • 2019-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多