我正在为自己的学位开发项目,其中一项要求是在Google地图上显示火山活动。但是,我在使用此资源https://volcano.si.edu/database/webservices.cfm时遇到了CORS问题-我找不到其他可以提供此数据的地方,所有其他留言板都指向该相同资源,但是我很困惑。
我正在使用他们的100个全新火山样品,并直接从他们的示例中使用:
$(document).ready(function(){
$.ajax({
type: 'GET',
url: "https://webservices.volcano.si.edu/geoserver/GVP-VOTW/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=GVP-VOTW:Smithsonian_VOTW_Holocene_Volcanoes&maxFeatures=100",
dataType: 'xml',
success: function (data) {
console.log(data);
},
error: function (jqXHR, textStatus, errorThrown) {
console.log(jqXHR);
console.log(textStatus);
console.log(errorThrown);
}
});
});
收到此结果:
在访问XMLHttpRequest
'https://webservices.volcano.si.edu/geoserver/GVP-VOTW/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=GVP-VOTW:Smithsonian_VOTW_Holocene_Volcanoes&maxFeatures=100'
来自来源“ http://127.0.0.1:3000”的信息已被CORS政策阻止:
请求中没有'Access-Control-Allow-Origin'标头
资源。
最佳答案
AWS可以帮助您。
创建一个帐户,然后转到API网关。
创建一个新的API并选择您的协议并命名。
选择动作按钮,创建方法,选择GET。
选择http,然后将您的URL插入为端点
再次选择位置,选择启用CORS,单击“下一步”完成任务
部署API,命名阶段,然后使用它提供的URL从AJAX请求中进行调用
因此,将要发生的事情是您将调用AWS-API网关,它将把您的请求传递到火山端点。 AWS将通过设置正确的请求头来处理CORS问题。
玩得开心 !