5

我正在使用 HTML5 地理位置功能。我的代码在“本地主机”中运行良好,但在“子域”中出现问题。我的代码如下:

 if (navigator.geolocation) {
                navigator.geolocation.getCurrentPosition(showPosition, showError);
  } else {
         console.log("Geolocation is not supported by this browser.");
   }
4

2 回答 2

13

在大多数情况下,无论 HTTP 或 HTTPS 连接如何,localhost 都将被视为安全 URL。这是为了简化开发过程并允许您使用只能通过安全连接访问的功能。

但是,如果您在 localhost 上仍然遇到此问题,或者希望通过启用了地理位置的 HTTP 远程访问该网站,则应按照以下步骤进行设置:

  1. 下载 chrome 并将以下 URL 粘贴到您的地址栏中chrome://flags/#unsafely-treat-insecure-origin-as-secure

  2. 在该页面上找到Insecure origins treated as secure标志并在文本框中添加无法加载地理位置的 URL。例如example.comlocalhost在您的情况下。

  3. 添加后,选择右侧的启用。

  4. 单击重新加载更改按钮,然后重新访问该网站,它现在应该询问地理位置。

于 2019-04-25T22:31:30.200 回答
-1

将 HTTPS 环境变量设置为true,然后像往常一样启动开发服务器npm start: 如果您在 Unix 上执行此操作HTTPS=true npm start请注意,服务器将使用自签名证书,Web 浏览器将停止连接到该站点并显示错误页面带有消息,警告:潜在的安全风险。我希望这有助于快乐的编码:)

于 2019-07-22T17:17:03.237 回答