You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决getCurrentPosition()在非安全源下的弃用报错问题

解决getCurrentPosition()在测试服务器的 deprecation 报错

这个报错的核心原因很明确:现代浏览器的安全策略已经禁止在HTTP(不安全源)上使用地理位置API,包括getCurrentPosition()和watchPosition()。你本地运行正常是因为浏览器把localhost/本地IP地址默认视为安全源,部署到测试服务器后用的是HTTP协议,就触发了这个限制。

下面是针对性的解决方案:

1. 给测试服务器配置HTTPS(推荐,生产/测试通用)

这是最彻底的解决办法,也是符合浏览器安全规范的做法:

  • 可以给测试服务器申请免费的SSL证书,比如Let's Encrypt提供的证书,配置完成后服务器就可以通过HTTPS访问;
  • 如果是内部测试环境,也可以生成自签名证书(虽然浏览器会提示不安全,但测试场景完全够用)。
    一旦服务器切换到HTTPS,你的地理位置API就能正常调用,地图功能也不会受影响,同时Google Maps的脚本保持HTTPS加载是正确的(不需要去掉前缀,反而HTTP加载可能引发混合内容问题)。

2. 开发测试时临时绕过(仅限个人测试,不要用于生产)

如果暂时不想配置HTTPS,可以在Chrome浏览器里通过启动参数强制把你的测试服务器地址标记为安全源:

  • 找到Chrome的快捷方式,右键选择「属性」;
  • 在「目标」输入框的末尾(注意和原有内容之间加空格)添加:--unsafely-treat-insecure-origin-as-secure="http://你的测试服务器域名/IP",比如--unsafely-treat-insecure-origin-as-secure="http://test.yourdomain.com";
  • 重启Chrome后,访问测试服务器就不会再出现这个报错了。

3. 额外检查:避免混合内容问题

确保页面上所有资源(包括Google Maps脚本、样式表、其他JS文件)都使用HTTPS加载,避免出现「混合内容」警告,这也能保证地图功能的正常运行。你当前引入Google Maps的脚本写法是正确的,不需要修改。

内容的提问来源于stack exchange,提问作者Gireesh T

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 10:07:52