Safari 中的 AusweisApp 问题 - 连接到本地服务器时出现混合内容问题 - 使用 JS 打开 http://127.0.0.1:24727 的 HTTPS 站点

问题描述 投票:0回答:1

问题:

您好!我正在使用一个名为 AusweisApp 的程序,该程序通过政府服务分发,用于处理身份证。该应用程序充当本地主机上的服务器,并等待来自我们的身份验证网站的数据。

我们有一个脚本 eid.js,它首先确定用户使用的是智能手机还是 PC/Mac。 如果是 PC/Mac,它会检查 AusweisApp 客户端是否正在该计算机上运行。 如果正在运行,脚本将重定向到本地 AusweisApp 服务器。

此机制在 Windows 上有效,部分在 macOS 上有效(在 Chrome、Edge 和 Firefox 中),但在 Safari 中,会出现浏览器无法打开本地服务器地址的错误。

问题似乎是由于“混合内容”造成的,因为我们的页面是通过 HTTPS 打开的,而本地服务器在 HTTP 上运行。

eid.js

`

this.openURL = 函数(url){ // 对话框可能需要一段时间才会出现 // 在将应用程序转发到应用程序商店之前,为用户提供打开应用程序的时间。 常量对话框超时 = 5000;

  setTimeout(function () {
    if (!didHide && options.onIgnored) {
      options.onIgnored();
    }
  }, dialogTimeout);

  window.location = url;
}; 

`

我们有成功实施该技术的网站示例:

Arbeitsamt.de

id.bund.de

任何人都可以帮助我了解这些网站上如何解决这个问题,以便我们可以将其适应我们的项目吗?任何建议将不胜感激!

链接:

AusweisApp 上的维基百科页面

AusweisApp 官方网站

我们希望重定向能够在所有浏览器上无缝运行。

问题似乎是由于“混合内容”造成的,因为我们的页面是通过 HTTPS 打开的,而本地服务器在 HTTP 上运行。

javascript macos safari mixed-content
1个回答
0
投票

根据我目前的知识,我可以告诉您,某些浏览器不允许连接到非安全服务器,例如 http 或 websocket。

所以我认为让它在所有浏览器上运行的唯一方法是通过 certbot 获取(免费)ssl 证书,然后让我们加密。 如果你不想打扰,有一个名为zerossl的网站可以让你获得1个月的免费ssl证书。

希望这有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.