我正在尝试运行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);
}
感谢。
答案 0 :(得分:0)
最新版本的Chrome需要某些功能的安全协议。例如,必须为httpS提供一个页面才能获得用户的地理位置。
对localhost放宽限制以启用dev / debugging。