自动完成API错误:No 'Access-Control-Allow-Origin'标头存在于请求的资源

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

本文关键字:于请求 存在 请求 资源 错误 API No Access-Control-Allow-Origin      更新时间:2023-09-26

我在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.

尽管这是一个公共api,不需要访问密钥或任何东西。是否有其他方法从这个url获取JSON数据?

所以我花了大约一个小时来做这个!最后,似乎某些服务器不携带:

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);
    })

关于这个问题的更多信息在这里找到:

Unexpected Token:当尝试解析JSON字符串

相关文章: