我正在尝试使用openweather api通过国家和城市获取天气,我以前从未使用JSON编码,所以请放轻松我
这是我正在使用的代码:
<script type="text/javascript">
$(document).ready(function () {
$('#btnGetWeather').click(function () {
var requestData = $('#txtCity').val() + ',' + $('#txtCountry').val();
var resultElement = $('#resultDiv');
$.ajax({
url : 'http://api.openweathermap.org/data/2.5/weather',
method : 'get',
data: { q:requsestData },
dataType: 'json',
success : function (data){
resultElement.html('Weather: ' + data.weather[0].main + '<br />' + 'Description: ' + data.weather[0].description);
}
});
});
});
</script>
我在firebug上遇到的错误是q:requestData是未定义的,这让我感到困惑,输入的html在这里,我确信这是一个简单的错误,但我不确定这是什么
<tr>
<td>
City
</td>
<td>
<input type="text" id="txtCity">
</td>
</tr>
<tr>
<td>
Country
</td>
<td>
<input type="text" id="txtCountry">
</td>
</tr>
</table>
<input type="button" id="btnGetWeather" value="Get Weather Data">
<br /><br />
<div id="resultDiv">
</div>
答案 0 :(得分:1)
正如其他人所指出的那样,问题的原因部分是由于印刷错误。最后,您的请求应如下所示:
$.ajax({
'method': 'POST',
'url': 'http://api.openweathermap.org/data/2.5/weather',
'data': {
'q': city + ',' + country,
'APPID': APIKEY,
},
'success': success,
});
您最有可能需要添加的是API密钥。自2015年10月起,您将需要一个API密钥才能使用Open Weather Map的API。参考:http://openweathermap.org/faq#error401
您可以在此处获取API密钥:http://openweathermap.org/appid
然后在data
对象中添加'APPID'属性并将其值设置为API密钥。
答案 1 :(得分:0)
一些问题:
有一个拼写错误,您已声明var requestData
并将其用作requsestData
。在s
。
u and e
method
应该是POST
,而不是GET
。