无法检索地理位置

时间:2017-03-20 09:50:08

标签: javascript html5 geolocation localhost

我正在尝试运行Javascript代码来检索设备的地理位置。当我尝试从localhost(127.0.0.1)运行代码时,代码按预期运行,打开弹出窗口以要求用户启用位置服务。但是,当我尝试托管此代码或使用本地IP地址(192.168.x.y)访问它时,代码失败并显示错误

关于为什么它适用于localhost而不是其他方面的任何想法。

这里是JS代码

function geoFindMe() {
  var output = document.getElementById("out");

  if (!navigator.geolocation){
    output.innerHTML = "<p>Geolocation is not supported by your browser</p>";
    return;
  }

  function success(position) {
    var latitude  = position.coords.latitude;
    var longitude = position.coords.longitude;

    output.innerHTML = '<p>Latitude is ' + latitude + '° <br>Longitude is ' + longitude + '°</p>';

    var img = new Image();
    img.src = "https://maps.googleapis.com/maps/api/staticmap?center=" + latitude + "," + longitude + "&zoom=13&size=300x300&sensor=false";

    output.appendChild(img);
  }

  function error() {
    output.innerHTML = "Unable to retrieve your location";
  }

  output.innerHTML = "<p>Locating…</p>";

  navigator.geolocation.getCurrentPosition(success, error);
}

感谢。

1 个答案:

答案 0 :(得分:0)

最新版本的Chrome需要某些功能的安全协议。例如,必须为httpS提供一个页面才能获得用户的地理位置。

对localhost放宽限制以启用dev / debugging。