尝试使用javascript,jquery和html搜索wunderground位置

下面的代码不起作用。 试图搜索天气位置。 当我搜索没有任何反应。


$(document).ready(function(){ var url='http://autocomplete.wunderground.com/aq?format=JSON&query='; var query; $('button').click(function(){ query=$("#query").val(); $.getJSON(url+query,function(json){ $.each(json.results,function(i,location){ $("#results").append('

'+location.name+'

'); }); }); }); });

仅供参考我对编码非常缺乏经验(从其他网站复制脚本)

如果你想进行跨域请求,你必须使用JSONP ,你应该为wunderground.com中提到的JSONP请求附加回调函数,试试这个。

 $(document).ready(function() { var url = 'http://autocomplete.wunderground.com/aq?format=JSON&query='; var query; $('button').click(function() { query = $("#query").val(); $.getJSON(url + query + '&cb=callbackfunc', function(json) { $.each(json.results, function(i, location) { $("#results").append('

' + location.name + '

'); }); }); }); });​

更新:

首先,您应该了解什么是JSONP 。

cb参数用于wunderground API中的 JSONP回调函数, 您可以在文档中看到 。

如果你还是不明白为什么需要使用jsonp回调函数,

打开这两个链接,你会看到它们之间的区别。

没有cb参数

与cb paramater

出于安全原因,您无法使用JavaScript从远程站点提取数据(请参阅相同的原始策略 )。

解决方法涉及CORS(有限的浏览器支持,该服务不支持),JSON-P(该服务显然不支持)以及在您自己的服务器上使用代理。