0

我正在尝试在使用 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 消息。我搜索了几个小时,但找不到解决方案......如果有人看到我做错了什么,请告诉我。

顺便说一句:JSONLint 说 url 是有效的。

编辑:尝试了 dataType: 'json' 和 dataType: 'jasonp' 但结果相同。

4

1 回答 1

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这样制作,它应该可以正常工作。至少它会更具可读性和可扩展性。

于 2013-05-07T16:06:46.993 回答