2016-06-10 6 views
0

안녕하세요 저는 자바 스크립트를 사용하여 첫 번째 웹 앱을 구축하고 www.openweathermap.org/에서 API를 사용하여 데이터를 가져옵니다. API 키를 사용했습니다. 문서에서 언급했듯이 여전히 권한없는 오류가 발생합니다. 함수를 호출 할 때이 오류가 발생할 수있는 다른 이유가있을 수 있습니다. 미리 감사드립니다.오류 401 : www.openweathermap.org를 사용하는 동안 API 키를 사용한 후에도 무단으로 수신 됨

var APPID = "my_secret_key"; 
    var temp; 
    var loc; 
    var icon; 
    var wind; 
    var humidity; 
    var direction; 
    function updateByZip(zip){ 
     var url = "http://api.openweathermap.org/data/2.5/weather?" + 
       "zip = " + zip + 
       "&APPID =" + APPID ; 
    sendRequest(url); 
    } 

    function sendRequest(url){ 
     var xmlhttp = new XMLHttpRequest(); 
     xmlhttp.onreadystatechange = function(){ 
     if(xmlhttp.readyState == 4 && xmlhttp.status == 200){ 
     var data = JSON.parse(xmlhttp.responseText) ; 
     var weather = {}; 
     weather.wind = data.wind.speed; 
     weather.direction = data.wind.deg; 
     weather.loc = data.name; 
     weather.temp = data.main.temp; 
     weather.icon = data.weather[0].id; 
     weather.humidity=data.main.humidity; 
     update(weather); 
     } 
     }; 
     xmlhttp.open("GET", url, true); 
     xmlhttp.send(); 
     } 
+0

브라우저에서이 URL을 사용하는 것이 좋습니다. 'sendRequest'는 정확히 무엇을 하는가? 아마도 실수로 POST를 보내고 있습니까? –

+0

보내기 요청은 날씨 데이터 수신 요청을 보냅니다. 원한다면 코드를 추가 할 수 있습니다. 또한 나는 "GET"을 사용했습니다. –

+0

CROS 문제가 있다고 생각합니다. OpenWeatherMap에서 데이터를 가져 오려고 할 때 마지막으로 작동하지 않습니다. (나는이 [피들] (http://jsfiddle.net/rover/HWAFG/)을 발견했으며 콘솔에 [CORS 오류] (http://i.imgur.com/QXKayKz.png)가 표시됩니다. – Tico

답변

1

URL의 등호 옆에 공백이 있습니다. 가능하면 공간을 urlencoding하고 매개 변수를 유효한 것으로 인식되지 않는 APPID%20으로 전송합니다.

var url = "http://api.openweathermap.org/data/2.5/weather?" + 
      "zip=" + zip + 
      "&APPID=" + APPID; 
+0

예. 감사합니다! 아직 내 기능에 오류가 있지만 확인해 보겠습니다. –