2017-01-14 3 views
0

날씨 데이터를 제공하는 API에 AJAX 요청을 보내려고합니다. 어떤 이유로 요청이 계속 실패합니다. 오류 메시지를 얻기 위해 .fail() 콜백을 사용하려고했습니다. 이 함수는 호출되지만, 빈 문자열만을 제공합니다. Ajax 요청이 실패했습니다.

바로 아래 'HTTP'를 시작으로, 완벽하게 API의 표준 내가

navigator.geolocation.getCurrentPosition(function(position){ 

long = position.coords.longitude; 
lat = position.coords.latitude; 
console.log(long); 
console.log(lat); 

url = "http://api.openweathermap.org/data/2.5/weather?lat=" + encodeURIComponent(lat) + "&lon=" + encodeURIComponent(long) + "&APPID=" + encodeURIComponent(apikey); 

console.log(url); 

$.getJSON(url, function(response){ 
console.log("Success"); 
console.log(response); 
}).fail(function(obj, stat, err){ console.log(err)}); 

}); 

의 I는 콘솔에 도착 URL과 일치를 사용하고 코드입니다. 경도와 위도가 제대로 가져 왔는지 확인했습니다. 어떤 통찰력이라도 대단히 감사 할 것입니다.

+0

무시 어떤 초기화되지 않은 또는 겉으로는 글로벌 변수에 있다고 생각하기 때문에이 코드가 실행되기 전에, 그들은 모두 서로 다른 세그먼트에 정리하고 있습니다. –

답변

0

잘 작동합니다.이 예제를 확인하십시오. 나는 내 api를 바꿀 것이므로 내가 그것을 바꾸기 전에 당신이 그것을 확인하도록하십시오.

console.log(url);의 결과를 브라우저에 붙여 넣고 원하는 출력이 나오는지 확인하십시오. 내가 다음에 문제가 API

function func(){ 
 

 
lat = 37; 
 
lon = 53; 
 
apikey = "YOUR API"; 
 

 
url = "http://api.openweathermap.org/data/2.5/weather?lat=" + encodeURIComponent(lat) + "&lon=" + encodeURIComponent(lon) + "&APPID=" + encodeURIComponent(apikey); 
 

 
console.log(url); 
 

 
$.getJSON(url, function(response){ 
 
console.log("Success"); 
 
console.log(response); 
 
}).fail(function(obj, stat, err){ console.log(err)}); 
 
    
 
} 
 

 
func();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

+0

놀랍게도 내 발췌문이 여전히 거부되는 동안 발췌 문장이 작동합니다. –

+0

api – codenut

+0

을 확인했거나 브라우저의 URL을 사용해보십시오 – codenut

관련 문제