我想借助地理位置(线性和经度)从openweather.com api获取天气信息。我无法理解为什么它没有获取数据。这是我的代码:
function getWeather(lat, long){
console.log(lat +" "+ long); //23.8008983 90.3541741
$.getJSON("http://api.openweathermap.org/data/2.5/weather?lat="+lat+"&lon="+long+"&units=imperial&APPID=7a26948f2294e4d5754c951a6aaf7cf8", function(json) {
console.log("Successfully data recieved");
var temp = Math.round(json.main.temp);
console.log(temp);
$("#weather").value(temp);
});
我尝试打印"成功接收数据"在控制台但它不打印。我假设回调没有发生。确认函数调用(getWeather())没问题,因为我得到纬度和经度的值(我将这些值保留在注释中)。我非常需要你的帮助。我在浏览器中手动输入了纬度和经度的url,它返回了我应该从这个JSON调用得到的预期输出。但是没有在代码中工作。
答案 0 :(得分:0)
我搞砸了一下,并意识到有时这是最简单的解决方案...尝试请求安全( https )网址:
$.getJSON("https://api.openweathermap.org/data/2.5/weather?lat="+lat+"&lon="+long+"&units=imperial&APPID=7a26948f2294e4d5754c951a6aaf7cf8", function(json) {
console.log("Successfully data recieved");
var temp = Math.round(json.main.temp);
console.log(temp);
$("#weather").value(temp);
});
答案 1 :(得分:0)
你的功能没有正确关闭,你错过了结尾}
大括号(我猜这是一个错字)。我已经尝试过你的代码,它对我来说就像一个魅力。还要确保你的` jquery 库完全包含在内。
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery.getJSON demo</title>
<style>
img {
height: 100px;
float: left;
}
</style>
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<script>
(function() {
getWeather(23.8008983,90.3541741);
})();
function getWeather(lat, long){
var watherAPI = "http://api.openweathermap.org/data/2.5/weather?lat="+lat+"&lon="+long+"&units=imperial&APPID=7a26948f2294e4d5754c951a6aaf7cf8";
$.getJSON( watherAPI, function (json) {
console.log("Successfully data recieved");
var temp = Math.round(json.main.temp);
console.log(temp);
})}
</script>
</body>
</html>