Javascript/jquery初学者です。
参考書の課題でopenweathermapからAPIを利用して現在地のデータを取得ようとしています。
openweathermapの公式HPではhttps://api.openweathermap.org/data/2.5/forecast?lat={lat}&lon={lon}&appid={API key}をURLに指定することで対象の天気データが取得できると記載があります。
しかし、参考書では上記URLの?以前までをURLに指定して、それ以後はパラメーターとして$.ajaxnに記述していますが、"400 bat request"を表示されデータを取得できません。(ソースコード参照)
代わりに公式HPの?以降をテンプレート文字列で指定するとデータを取得できます。
const url=https://api.openweathermap.org/data/2.5/forecast?lat=${lat}&lon=${long}&appid=${appId}
;
参考書のコードで取得できない理由をご教授いただけないでしょうか?
参考書のソースコードは以下です。
js
1//geolocation 2function success(pos){ 3 console.log(pos); 4 ajaxRequest(pos.coords.latitude, pos.coords.longitude); 5} 6 7function fail(error){ 8 alert('位置情報の取得に失敗しました。エラーコード:' + error.code); 9} 10 11navigator.geolocation.getCurrentPosition(success,fail); 12 13 14//データの取得 15function ajaxRequest(lat, long){ 16 const appId ='d649d9705d875a6264e13f*************'; //appIdは*で隠してます。 17 const url='https://api.openweathermap.org/data/2.5/forecast'; 18 19 20 $.ajax({ 21 url:url, 22 data:{ 23 appid: appId, 24 lat: lat, 25 log: long, 26 units:'metric', 27 lang:'ja' 28 } 29 }) 30 .done(function(data){ 31 console.log(data); 32 }) 33 .fail(function(){ 34 console.log('$.ajax failed!'); 35 }) 36}
回答1件
あなたの回答
tips
プレビュー