我正在对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');