“地理定位请求只能在安全的环境中完成”
地理位置需要 HTTPS 很好,但我需要在不安全的本地服务器上进行调试,然后才能使其生效。
我希望我可以编辑 Firefox 'about:config' 以禁用此保护措施以进行调试。我该怎么做?在不安全的上下文中是否有其他/更好的方法来调试位置?(模拟 https)
“地理定位请求只能在安全的环境中完成”
地理位置需要 HTTPS 很好,但我需要在不安全的本地服务器上进行调试,然后才能使其生效。
我希望我可以编辑 Firefox 'about:config' 以禁用此保护措施以进行调试。我该怎么做?在不安全的上下文中是否有其他/更好的方法来调试位置?(模拟 https)
我想知道为什么它仍然对我有用,但这是我的代码:
function geolocate() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(
function(position) {
let lat = position.coords.latitude;
let lng = position.coords.longitude;
var geolocation = {
lat: lat,
lng: lng
};
document.getElementById('lat').value = lat;
document.getElementById('lng').value = lng;
console.log("----------------------------------------------");
console.log("Found Location: "+ lat + " / " + lng);
var google_maps_geocoder = new google.maps.Geocoder();
google_maps_geocoder.geocode(
{ 'latLng': geolocation },
function( results, status ) {
let street = results[0].address_components[1].long_name;
let number = results[0].address_components[0].long_name;
let plz = results[0].address_components[6].long_name;
let city = results[3].address_components[0].long_name;
//let country = results[7].formatted_address;
let full = street+" "+number+", "+plz+" "+city;
// write the values in the fields
document.getElementById('autocomplete').value = full;
document.getElementById('route').value = street;
document.getElementById('street_number').value = number;
document.getElementById('postal_code').value = plz;
document.getElementById('locality').value = city;
//document.getElementById('country').value = country;
console.log("User Address: "+street+" "+number+", "+plz+" "+city);
$.ajax({
type: 'POST',
url: 'include/set-location.inc.php',
data: {lat: lat, lng: lng, street: street, number: number, plz: plz, city: city, full: full},
dataType: 'json',
success: function(response) {
if(response.status === 'success') {
console.log("Saved address in a cookie!");
if (site === "jobs") {
location.reload(true);
}
}
}
});
}
);
});
}
}
我希望我的代码对你有帮助;)
您可以在没有加密的情况下在 localhost 上进行测试
Firefox 不会通过非安全连接发送地理定位,并且无法禁用此行为。但是,localhost 被认为是安全连接,因此在测试时可能是一个选项。这也解释了为什么 Christopher Supertramp 可以通过 http 尝试他的代码——他在本地主机上。
这是来自 Mozilla 文档:
本地交付的文件,例如http://localhost和 file:// 路径被认为已安全交付。
https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts