【问题标题】:CORS error in js codejs代码中的CORS错误
【发布时间】:2018-06-17 12:55:27
【问题描述】:
    <script type="text/javascript">
        var vectorSource = new ol.source.Vector({
            format: new ol.format.GeoJSON(),
            url:    "http://localhost/cgi-bin/mapserv.exe?map=D:\MS4W\Apache\htdocs\baseWFS.map&SERVICE=WFS&VERSION=1.0.0&REQUEST=getfeature&TYPENAME=parcel&bbox=518259.145000,3240058.724100,519352.395700,3241604.305400,EPSG:4326&outputformat=geojson",
            strategy: ol.loadingstrategy.all
        });

        var vector = new ol.layer.Vector({
            source: vectorSource,
            style: new ol.style.Style({
                stroke: new ol.style.Stroke({
                    color: 'rgba(0, 0, 0, 1.0)',
                    width: 2
                })
            })
        });
        var map = new ol.Map({
            layers: [vector],
            view: new ol.View({
                center: [518744, 3240850],
                maxZoom: 10,
                zoom : 1            
            }),
            target: document.getElementById('map')
        });

我写了这个 js 代码,但是它没有显示任何东西并且有这个错误: 跨域请求被阻止:同源策略不允许读取位于http://localhost/cgi-bin/mapserv.exe?map=D:MS4WApachehtdocsLIS_project%08aseWFS.map&SERVICE=WFS&VERSION=1.0.0&REQUEST=getfeature&TYPENAME=parcel&bbox=518259.145000,3240058.724100,519352.395700,3241604.305400,EPSG:4326&outputformat=geojson 的远程资源。 (原因:CORS 标头“Access-Control-Allow-Origin”缺失)。

【问题讨论】:

  • 让我知道完整的代码,我会帮你添加 CORS 标头,我的意思是你是如何发出请求的,任何客户端都喜欢“请求”?请提供有关客户端和服务器的完整信息。
  • 您是否有机会通过file:// url 运行此脚本?该协议不允许使用 CORS。如果您对两者都使用 localhost(或者将所有内容保留在同一个域名上),您将不会遇到此问题。

标签: javascript openlayers-3


【解决方案1】:

这是服务器端的问题。在您的服务器端允许客户端域。还要检查这个https://enable-cors.org/server.html

【讨论】:

  • 我这样做了,但问题没有解决
【解决方案2】:

只需将 CORS 插件添加到 chrome,使用下面的链接并从 chrome 启用它。

https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi?hl=en

它只是减少了手动操作的痛苦。

【讨论】:

    【解决方案3】:

    RE:“很直接,发出请求时缺少 CORS 标头。请从 CLIENT 端添加 CORS!??...”不,您是在暗示我一遍又一遍地看到的基本新手错误... CORS(跨域资源共享)是服务器说“我会接受你的请求,即使你来自不同的来源”的一种方式。例如Web API 服务在 SERVER 端口 5000 上运行,CLIENT 在 4200 端口上运行……这需要来自 SERVER 的合作和配置——所以如果你不能修改 SERVER(例如,如果你使用外部 API),这种方法不会工作。一些人建议出于开发目的禁用 CLIENT 浏览器上的 CORS 安全选项...,但仍然不建议这样做,而且当您将前门敞开时非常危险。

    【讨论】:

      猜你喜欢
      • 2021-11-16
      • 2014-12-28
      • 2016-05-02
      • 2021-09-12
      • 2012-01-25
      • 1970-01-01
      • 1970-01-01
      • 2016-06-08
      • 1970-01-01
      相关资源
      最近更新 更多