我正在为自己的学位开发项目,其中一项要求是在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'标头 资源。
答案 0 :(得分:1)
除非您可以在https://webservices.volcano.si.edu上控制网站配置,否则如果没有CORS策略(https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS),就不可能发起Ajax请求。
可以通过驻留在同一Javascript域上的服务器端脚本代理请求来获得轻松的解决方案。您可以向代理执行AJAX请求;您必须编写ASP / PHP / etc。脚本以执行对https://webservices.volcano.si.edu
的请求答案 1 :(得分:1)
AWS可以帮助您。
因此,将要发生的事情是您将调用AWS-API网关,该网关将把您的请求传递到火山端点。 AWS将通过设置正确的请求头来处理CORS问题。
玩得开心!