Ошибка Chrome navigator.geolocation.getCurrentPosition() 403

По какой-то причине при вызове navigator.geolocation.getCurrentPosition() я получаю эту ошибку:

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

Он работал отлично вчера! Может ли быть что-нибудь со своими серверами?

Ответ 1

Кажется, он сейчас резерв. Но прежде чем я понял, что он работает, я использовал другой способ получить данные о местоположении, как рекомендовал другой пользователь на 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/

Ответ 2

Это не проблема HTTPS, даже собственные примеры Google не работают, см. https://developers.google.com/maps/documentation/javascript/examples/map-geolocation

Я открыл поток на reddit и узнал больше и связался здесь: https://www.reddit.com/r/webdev/comments/3j8ipj/anyone_else_had_issues_with_the_html5_geolocation/

У меня были люди со всего мира, сообщающие ту же проблему.

Ответ 3

Это происходит и для меня также на idoco.github.io/map-chat

Я подозреваю, что это связано с изменениями google, планируемыми для Устаревшие мощные функции в Insecure Origins, кажется, что некоторые изменения были сделаны в последнем несколько дней в этом хроме Проблема 520765: устаревание и удаление мощных функций на небезопасном происхождении

Вы можете проверить свой сайт на 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);
  })

Ответ 4

У меня была такая же проблема, вы должны проверить свою панель разработчиков и убедиться, что ваш ключ API не имеет ограничений или предупреждений об использовании.