Я загрузил веб-приложение, над которым я работаю на удаленном сервере. Все работает хорошо, за исключением геолокации. Я не могу понять, в чем проблема, но я не получил сообщение об ошибке. это код HTML, в котором участвует геолокация.Geolocation работает локально, но не на удаленном сервере
<tr>
<td>Ti trovi qui: <span id="location"></span></td>
</tr>
</table>
<input type="hidden" id="latitude" name="latitude">
<input type="hidden" id="longitude" name="longitude">
</form>
Эти скрипты, которые я использую: (я не очень готов с Javascript и JQuery)
function showLocation(position) {
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
jQuery.ajax({
type:'POST',
url:'getLocation.php',
data:'latitude='+latitude+'&longitude='+longitude,
success:function(msg){
if(msg){
jQuery("#location").html(msg);
}else{
jQuery("#location").html('Not Available');
}
}
});
}
function getUserCoordinates(position){
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
document.getElementById('latitude').value=latitude
document.getElementById('longitude').value=longitude
}
jQuery(document).ready(function(){
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(getUserCoordinates);
navigator.geolocation.getCurrentPosition(showLocation);
} else {
jQuery('#location').html('Geolocation is not supported by this browser.');
}
});
Это getLocation.php файл (но я не думаю, что это проблема):
<?php
require_once 'metodi.php';
sec_session_start();
if(login_check() == true){
if(!empty($_POST['latitude']) && !empty($_POST['longitude'])){
$_SESSION['latitude'] = $_POST['latitude'];
$_SESSION['longitude'] = $_POST['longitude'];
//Send request and receive json data by latitude and longitude
$url = 'http://maps.googleapis.com/maps/api/geocode/json?latlng='.trim($_POST['latitude']).','.trim($_POST['longitude']).'&sensor=false';
$json = @file_get_contents($url);
$data = json_decode($json);
$status = $data->status;
if($status=="OK"){
//Get address from json data
$location = $data->results[0]->formatted_address;
}else{
$location = '';
}
//Print address
echo $location;
}
} else {
echo "Non sei autorizzato a visualizzare questa pagina. Effettua il login.";
}
?>
Затем я получаю значение скрытых входов в другом файле php.
ничего в поле возвращаемого статуса? 'echo $ status' – nogad
Я просто добавил эти строки кода, и он начинает работать ... Я не знаю, почему xD ' navigator.geolocation.getCurrentPosition (getUserCoordinates, geoError); функция geoError (ошибка) { console.log (error.code); } ' Но я хотел бы понять .. Вы можете мне объяснить? – seb
не имеет для меня большого смысла. он может быть временно недоступен. – nogad