我正在为自己的学位开发项目,其中一项要求是在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问题。

玩得开心 !

08-03 18:25