我正在对Dark Sky API进行以下调用:

axios({
      url: 'https://api.darksky.net/forecast/[my key]/37.8267,-122.4233',
      timeout: 20000,
      method: 'get',
      responseType: 'json'
    })
    .then(function(r) {
      console.log(r);
    })
    .catch(function(r){
      console.log(r);
    });


我收到此错误:

XMLHttpRequest无法加载https://api.darksky.net/forecast/[my键] /37.8267,-122.4233。所请求的资源上不存在“ Access-Control-Allow-Origin”标头。因此,不允许访问源'http://localhost:3000'。

我尝试将config作为第二个参数添加到调用中,并将config设置为:

var config = {
    headers: {'Access-Control-Allow-Origin': '*'}
};


但是,我很确定必须在服务器端完成此操作?还尝试将响应设置为jsonp,看看是否可以解决该问题,但仍然没有解决办法。我也尝试仅使用fetch() API,但这也不起作用。

如果有什么不同,我将在React应用程序中进行此调用。我如何才能获取JSON并继续进行我的项目?

最佳答案

试用JSONP。不如CORS安全,但可以运行:

            $.get( weatherAPI, function( weather ) {
                console.log(weather);
            }, 'jsonp');

08-25 11:15
查看更多