2017-01-07 2 views
0

Я пытаюсь изменить содержимое элемента сНа с идентификатором атрибута страны (т.е. id="country") к страны текущего положения пользователя. Что-то не так с моим кодом?

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); 
    }) 
    } 
+1

Ваш Javascript выглядит нормально. Что произойдет, если вы добавите 'console.log (data.sys.country)'? Это ценность, которую вы ожидаете? – machineghost

+0

Добавление комментария @ machineghost. Если это не сработает, попробуйте запустить весь возвращенный JSON. –

+0

Если я добавлю console.log (data.sys.country), он говорит: «данные не определены». – Dav

ответ

0

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>

Смежные вопросы