何らかの理由でnavigator.geolocation.getCurrentPosition()
を呼び出すと突然このエラーが発生します:
Network location provider at 'https://www.googleapis.com/' : Returned error code 403.
昨日は完璧に機能していました!サーバーに何かありますか?
現在バックアップされているようです。しかし、機能していることに気付く前に、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/
これは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/
世界中の人々に同じ問題を報告してもらいました。
これは私にとっても idoco.github.io/map-chat で起こります
これは、Googleが計画している変更に関連していると思われます 安全でないオリジンでの強力な機能の廃止 このクロムで過去数日間にいくつかの変更が行われたようです 問題520765:廃止と削除安全でないオリジンの強力な機能の
Httpsでサイトをテストして確認できますか?
その間、私は this repo の回避策としてこのAPIの使用法を見つけました。
$.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);
})
同じ問題が発生しました。 開発者ダッシュボード を確認し、APIキーに使用制限や警告がないことを確認する必要があります。