我已经使用axios创建了一个GET请求,如下所示:
searchCity: function(){
return axios.get('https://autocomplete.wunderground.com/aq?query=lond' + '&format=JSON')
}
但是我遇到了错误:
https://autocomplete.wunderground.com/aq?query=lond&format=JSON. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8080' is therefore not allowed access.
即使这是一个公共API,也没有访问密钥或任何需要的东西。 是否有其他方法可以从此网址获取JSON数据?
答案 0 :(得分:1)
所以我在这上花了大约一个小时! 最后,似乎某些服务器没有携带:
Access-Control-Allow-Origin: *
在他们的响应头中,但是某些服务器与JSONP兼容而不是标准JSON请求。但问题是,服务器也必须支持JSON-P。尽管URL中的format = jsonp,但服务器没有使用JSON-P响应,而是使用JSON。
在这种情况下它是,它是和以下代码使用react-jsonp:
searchCity: function(){
return jsonp('https://autocomplete.wunderground.com/aq?query=lond', { param: 'cb' }, function (err, data) {
console.log(data.RESULTS);
})
此处找到有关此问题的更多信息: