我正在尝试从天气API中获取天气数据。此API需要位置的经度和纬度。因为我想使用位置名称(由纬度和经度插入)作为用户输入,所以我想首先使用地址解析API获取这些值。
但是当我尝试在地址解析API的ajax请求中调用weather API时,会遇到跨域错误。
代码如下:
function get_gps_weather(location,maps_api_key, weather_api_key){
$.ajax({
url : 'https://maps.googleapis.com/maps/api/geocode/json?address='+location+'&key='+api_key,
type: 'GET',
success : function(data){
var latitude=data['results'][0]['geometry']['location']['lat'];
var longitude=data['results'][0]['geometry']['location']['lng'];
$.ajax({
url : 'https://api.darksky.net/forecast/'+weather_api_key+'/'+latitude+','+longitude
type: 'GET',
success : function(weather_data){
console.log(weather_data)
}
});
}
});
}
谢谢, 卢卡斯
答案 0 :(得分:2)
您的代码很有意义。您遇到的问题是CORS。
Darksky API没有Access-Control-Allow-Origin
解析为*
。这意味着您将需要设置一个代理服务器来在后台调用API(在您发出的请求中,API密钥随即发出)。
https://darksky.net/dev/docs/faq包含所有相关信息。