我做以下调用黑暗的天空API:axios GET请求的资源上存在“否”Access-Control-Allow-Origin'标头“。
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”标题。因此'Origin'http://localhost:3000'不允许访问。
我试着加入了config
作为第二个参数的号召,并设置config
是:
var config = {
headers: {'Access-Control-Allow-Origin': '*'}
};
但是,我敢肯定,必须要在服务器端做了什么?还尝试做出回应jsonp
看看是否可以解决它,但仍然没有。我也尝试使用简单的fetch()
API,但是这也不起作用。
如果它有什么不同,我在React应用程序中进行此调用。我如何才能获得JSON并继续进行我的项目?
是的,这必须在服务器端允许。这是一个浏览器策略,所以如果你通过你自己的服务器(express/node等)进行代理,那么你将可以在没有CORS的情况下进行呼叫。 –
@DavinTryon,那么如何编辑我的代码来工作并给我JSON? –
要求api.dark.sky的所有者支持Ajax。 –