EDIT
Важная вещь, чтобы отметить, что по состоянию на Chrome 50, геолокации API будет работать только на безопасных условиях, таких как HTTPS.
Если ваш сайт размещен на незащищенном происхождении (например, HTTP), запросы на получение местоположения пользователей больше не будут работать.
Если вы используете HTTPS то,
ORIGINAL
Я предполагаю, что вы не строить свой объект позиции правильно.
Убедитесь, что у вас есть объект position
, который имеет свойство coords
со значением объекта с двумя свойствами, широтой и длительностью. Каждый объект должен быть воплощен с { }
Он отлично работает в этом фрагменте (исходный код без изменений):
function location(position) {
var a = position.coords.latitude;
var b = position.coords.longitude;
$.getJSON('http://api.openweathermap.org/data/2.5/weather?lat=' + a + '&lon=' + b + '&APPID=b84cde4a2b80a14ecfebbd9ea7d08831&units=metric', function getData(data) {
$("#country").html(data.sys.country);
})
}
/* here we build our position object with a coords child object containing latitude and longitude */
var pos = {
"coords": {
"latitude": 34.7459360,
"longitude": -118.2506350
}
};
/* now we actually call the script location(pos) using our position object */
location(pos);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="country"></div>
Ваш Javascript выглядит нормально. Что произойдет, если вы добавите 'console.log (data.sys.country)'? Это ценность, которую вы ожидаете? – machineghost
Добавление комментария @ machineghost. Если это не сработает, попробуйте запустить весь возвращенный JSON. –
Если я добавлю console.log (data.sys.country), он говорит: «данные не определены». – Dav