我正在尝试使用javascript和worlweatheronline.com api在我正在构建的网站上显示天气。我可以在Safari中测试时提取所需的所有数据,但在Firefox和Chrome中没有显示任何数据。我使用以下代码:
var url = 'http://api.worldweatheronline.com/free/v1/weather.ashx?q=Gent&'http://api.worldweatheronline.com/free/v1/weather.ashx?q=Gent&
jQuery.get(url,function(r){
document.getElementById("weather").innerHTML += .... ; // do something
},"JSON");
我在论坛上看到谷歌并获取了另一种获取json数据的方法,并提出了以下建议:
$.ajax({
url: 'http://api.worldweatheronline.com/free/v1/weather.ashx?q=Gent&format=json&cc=yes&key=pjzd2w42md9qacscthr9gw4h',
type: 'GET',
dataType: 'json',
success: function(r) {
alert("test");
},
error: function() {
alert("error");
}});
同样,Safari提供包含“测试”的警报,但Firefox和Chrome都显示“错误”。当我查看Web控制台时,我看到没有错误,只有HTTP / 1.1 200 OK消息。我搜索了几个小时但我找不到解决办法...如果有人看到我做错了什么,请告诉我。
BTW:JSONLint说网址有效。
编辑:尝试了dataType:'json'和dataType:'jasonp'但结果相同。
答案 0 :(得分:1)
你的查询字符串很可能会咆哮。我会更恰当地设置它:
$.ajax({
type:'GET',
url:'http://api.worldweatheronline.com/free/v1/weather.ashx',
data:{q:'Gent',format:'json',cc:'yes',key:'pjzd2w42md9qacscthr9gw4h'},
success:function(r){
alert('success');
},
error:function(){
alert('error');
}
});
通过制作data
,它应该可以正常工作。至少它更具可读性和可扩展性。