API URL을 가져 와서 변수를 제거하고 실제로 LAT 및 LONG 값을 브라우저에 삽입하면 작동합니다. 그러나 LAT 및 LONG 변수가있는 코드에서 사용되면 작동하지 않습니다.OpenWeatherMapAPI LAT LONG을 통한 Geolocation이 작동하지 않거나 인쇄되지 않습니다.
나는 성공적으로 LAT 및 LONG 값을 끌어와 인쇄되지 동일한 구문의 경우와 유사하여, 다음 변수를 저장하고있어 기존의 질문 here 및 here
언급했습니다. 변수를 API URL에 삽입하고 있지만 인쇄하지 않습니다. 나는 이유를 모른다.
감사합니다.
이
내 HTML<html>
<head>
<meta charset="UTF-8">
<title>Today's Weather | Malvin</title>
</head>
<body>
<p id="geoLoc"></p>
<p id="currTemp"></p>
</body>
</html>
입니다 그리고 이것은/JQuery와
//geolocation via freecodecamp exercise
$(document).ready(function(){
if (navigator.geolocation){
navigator.geolocation.getCurrentPosition(function(position){
$("#geoLoc").html("latitude: " + position.coords.latitude + "<br>longitude: " + position.coords.longitude);
});
}
//jquery current weather via openweathermapp
var lat = position.coords.latitude;
var long = position.coords.longitude;
var weatherURL = "http://api.openweathermap.org/data/2.5/weather?lat="+lat+"&lon="+long+"&APPID=********f4144190680fc96bd357451d";
$.getJSON(weatherURL, function(data)
{
$('#currTemp').html("current temp: " + data.main.temp);
});
});
감사합니다. 비동기 호출에는 콜백 함수가 필요 없습니다. .getSSON? 동기식 대안이란 무엇입니까? .done 콜백 함수로 스 니펫을 추가했지만 여전히 값을 반환하지 않습니다. .done 콜백 함수의 데이터를 반환하는데 얼마나 걸리나요? – Stomper
.done이 콜백입니다. UI가 차단되거나 응답하지 않기 때문에 동기식을 선택하는 것은 좋은 옵션이 아닙니다. 당신이 동기 대안을 요구하기 때문에하지만, 난 여기가 제공하고 있습니다 $ 아약스 ({ 유형 : "SOME_URL" 비동기 : : URL을 "GET"거짓 을}); "async"를 false로 설정하면 AJAX 호출이 동기화됩니다. codepen 링크를 공유 할 수 있습니까? 나는 당신을 도와 드리겠습니다. –
또한 왜 "if"바깥에 lat 변수와 long 변수를 설정하고 있습니까? "if"조건 앞에 변수를 선언하고 조건 안에 변수를 설정하는 것이 좋습니다. 사용자가 Geolocation을 지원하지 않는 경우 사용자에게 알리기 위해 다른 경우가 있습니다. –