OpenLayer v4.2.0显示错误'跨源资源共享策略拒绝跨域图像加载'

时间:2017-10-09 06:55:00

标签: javascript javafx openlayers

我们是一个JavaFx应用程序,它利用WebView的浏览器功能来呈现网页。我们能够执行从JavaScript到JavaFX的upcalls,反之亦然。 WebConsoleListener被添加到日志消息或从wepage抛出的错误。

为了在JavaFX应用程序中显示几个Map功能,如坐标选择,距离计算等,我们创建了一个网页,并使用OpenLayer v4.2.0 API编写了所需的必需javascript。一切都在浏览器中工作(当然,在删除向JavaFx的上调后)以及在JavaFx应用程序中。

但是,当应用程序部署到客户时,其日志记录错误“跨源资源共享策略拒绝跨域映像加载”和地图图块未加载。客户位于不同的地理位置(日本),我们无法访问他们的机器。

他们是'ol.source.OSM'的'crossOrigin'属性,正如文档中提到的,它的价值仍然是'匿名的'。当我们将其值设置为“use-credentials”时,我们能够重现类似的问题。

以下是与地图渲染相关的代码。如果需要,我们可以发布与添加几何和各种事件处理相关的整个代码 (取决于用户操作叠加层已删除或添加)。

<link rel="stylesheet" href="ol.css" type="text/css">
<script src="polyfill.js"></script>
<script src="ol.js"></script>

var raster = new ol.layer.Tile({
        source: new ol.source.OSM(
                )
    });

    var coordinateOverlay = new ol.layer.Vector({
        source: new ol.source.Vector({
        }),
        style: new ol.style.Style({
            image: new ol.style.Circle({
                radius: 7,
                fill: new ol.style.Fill({
                    color: '#d12b19'
                })
            })
        })
    });

    var map = new ol.Map({
        layers: [raster, coordinateOverlay],
        target: 'map',
        view: new ol.View({
            center: [-11000000, 4600000],
            zoom: 5
        })
    });

 var features = new ol.Collection();

    var distanceOverlay = new ol.layer.Vector({
        source: new ol.source.Vector({ features: features }),
        style: new ol.style.Style({
            fill: new ol.style.Fill({
                color: 'rgba(255,255,255,0.3)'
            }),
            stroke: new ol.style.Stroke({
                color: '#d12b19',
                width: 4
            }),
            image: new ol.style.Circle({
                radius: 7,
                fill: new ol.style.Fill({
                    color: 'red'
                })
            })
        })
    }); 

如果有人知道此问题的原因,请提供帮助。

EDIT 客户端落后于代理。 [恕我直言,这里看起来无关紧要,因为已经提出了请求。]

0 个答案:

没有答案