Chrome navigator.geolocation.getCurrentPosition() 错误 403

Posted

技术标签:

【中文标题】Chrome navigator.geolocation.getCurrentPosition() 错误 403【英文标题】:Chrome navigator.geolocation.getCurrentPosition() error 403 【发布时间】:2015-11-26 13:31:14 【问题描述】:

由于某种原因,在调用navigator.geolocation.getCurrentPosition() 时突然出现此错误:

Network location provider at 'https://www.googleapis.com/' : Returned error code 403.

它昨天工作得很好!他们的服务器会不会有什么问题??

【问题讨论】:

我在 Chrome 和 Firefox 中遇到了同样的问题,但在 IE 中似乎可以找到。在同事的机器上试了一下,结果一样。 也发生在我身上。我怀疑谷歌在他们的地理位置政策中改变了一些不安全的 http 这里有同样的问题。 2015 年 8 月 31 日昨天一切正常。 谢天谢地,不只是我 好像在googleapis.com解决了 【参考方案1】:

我遇到了同样的问题,您必须检查您的 developer dashboard 并确保您的 API 密钥没有使用限制或警告。

【讨论】:

【参考方案2】:

现在看来它已经恢复了。但在我意识到它起作用之前,我使用了另一种方法来获取 reddit.com 上另一个用户推荐的位置数据

var latLong;
$.getJSON("http://ipinfo.io", function(ipinfo)
    console.log("Found location ["+ipinfo.loc+"] by ipinfo.io");
    latLong = ipinfo.loc.split(",");
);

来源:https://www.reddit.com/r/webdev/comments/3j8ipj/anyone_else_had_issues_with_the_html5_geolocation/

【讨论】:

这似乎不可靠,我出现在德克萨斯州理查森,这对我来说是个新闻,因为我在旧金山。对不起,我很刻薄。 这只是在大 geoIP 表中查找当前 IP - 特别是在移动设备上,这不是最好的方法(GSM IP 是池 IP,而 GPS 更准确)【参考方案3】:

idoco.github.io/map-chat我也遇到这种情况

我怀疑这与谷歌为Deprecating Powerful Features on Insecure Origins 计划的更改有关,似乎最近几天在这个铬Issue 520765: Deprecation and removal of powerful features on insecure origins 上做了一些更改

您能否通过 https 测试您的网站以确认这一点?

与此同时,我发现这个 api 用法可以作为this repo 的一种解决方法:

  $.getJSON("http://ipinfo.io", function(doc)
    var latlong = doc.loc.split(",")
    setUserLocation(parseFloat(latlong[0]), parseFloat(latlong[1]));
    getLocation(parseFloat(latlong[0]), parseFloat(latlong[1])).then(function(res)
      userLocationName = res
    )
    initialiseEventBus();
    map.panTo(userLocation);

  , function(err) 
    setUserLocation(Math.random()*50, Math.random()*60);
    userLocationName = "unknown.na"
    initialiseEventBus();
    map.panTo(userLocation);
  )

【讨论】:

localhost 在此处被定义为安全的:Prefer Secure Origins For Powerful New Features 但仍然无法正常工作... 在内部和外部站点上尝试了 Http:// 和 Https://,结果没有变化(Chrome/FF 中的失败在 IE 中有效。在 fiddler 中使用标准 http:// 进行了尝试头,它的工作。 我们正在使用 https,但仍然会发生这种情况

以上是关于Chrome navigator.geolocation.getCurrentPosition() 错误 403的主要内容,如果未能解决你的问题,请参考以下文章

H5微信 获取用户当前位置信息

html5怎么实现调用gps获取地理位置具体代码

如何在Javascript中返回用户的纬度和经度? [复制]

Chrome 自动播放政策 - Chrome 76

如何解决这个chrome错误

chrome扩展开发,怎么获取响应信息?