JSON在Safari中加载,但在Firefox或Chrome中不加载

时间:2013-05-07 15:56:01

标签: javascript jquery json firefox safari

我正在尝试使用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'但结果相同。

1 个答案:

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