Wunderground Autocomplete API error: No 'Access-Control-Allow-Origin' header is present on the requested resource

Wunderground Autocomplete API error: No 'Access-Control-Allow-Origin' header is present on the requested resource

我在 React 中使用 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.

即使这是 public api 并且不需要访问密钥或任何东西。 是否有另一种方法从 url 中获取 JSON 数据?

所以我花了大约一个小时! 最后好像是某些服务器没有带:

Access-Control-Allow-Origin: *

在他们的回复 headers 中,但是一些服务器兼容 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);
    })

在此处找到有关此问题的更多信息:

Unexpected Token : when trying to parse a JSON string