Javascript requestData未定义,尽管JSON设置了var
我正在尝试使用OpenWeatherAPI通过国家和城市获取天气,我以前从未使用JSON编码,所以请对我放松 这是我正在使用的代码:Javascript requestData未定义,尽管JSON设置了var,javascript,jquery,json,Javascript,Jquery,Json,我正在尝试使用OpenWeatherAPI通过国家和城市获取天气,我以前从未使用JSON编码,所以请对我放松 这是我正在使用的代码: <script type="text/javascript"> $(document).ready(function () { $('#btnGetWeather').click(function () { var requestData = $('#txtCity').val()
<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>
$(文档).ready(函数(){
$('#btnGetWeather')。单击(函数(){
var requestData=$('#txtCity').val()+','+$('#txtCountry').val();
var resultElement=$(“#resultDiv”);
$.ajax({
网址:'http://api.openweathermap.org/data/2.5/weather',
方法:“get”,
数据:{q:requsestData},
数据类型:“json”,
成功:功能(数据){
html('Weather:'+data.Weather[0].main+'
'+'说明:'+data.Weather[0].Description);
}
});
});
});
我在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>
城市
国家
一些问题:
var requestData
,并像requestData
一样使用它。移除u和e之间的额外s
方法
应该是POST
,而不是GET
正如其他人指出的那样,问题的部分原因是印刷错误。最后,您的请求应该如下所示:
$.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。参考:
您可以在此处获取API密钥:
然后在
data
对象中添加'APPID'属性并将其值设置为API键。API是否支持跨域请求/COR?如果不是,您可能被同一原产地保单阻止了。我想是的,我是在遵循一个使用该保单的示例,它是开放天气的,有一个输入错误var requestData
,并像requestData
一样使用它。删除u和e
之间的额外s
。检查下面的答案,我想还有一个问题。第一个问题可以解决您的问题,但如果您不将其更改为POST
:),代码将无法工作很有趣,因为它确实如此