"A Geolocation request can only be fulfilled in a secure context"
Its great that HTTPS is needed for geolocation but I need to debug on insecure local server before it makes it to live.
I was hoping I could edit Firefoxes 'about:config' to disable this safeguard for debugging. How would I do this? Are there any other/better ways to debug location in insecure context? (mock https)
Im wondering why its still working for me but this is my code:
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);
}
}
}
});
}
);
});
}
}
the browser "question":
my console:
I hope my code will help you ;)
You can test on localhost without encryption
Firefox will not send Geolocation over a non secure connection and this behaviour cannot be disabled. However, localhost is considered to be a secure connection so that might be an option when testing. This also explains why Christopher Supertramp could try his code over http- he's on localhost.
This is from Mozilla documentation:
Locally delivered files such as http://localhost and file:// paths are considered to have been delivered securely.
https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With