地理服务器上没有'Access-Control-Allow-Origin'

问题描述 投票:0回答:2
map.on('singleclick', function (evt) {
document.getElementById('info').innerHTML = "Nhìn thấy dòng này thì làm lại đi :) !!!";
var view = map.getView();
var viewResolution = view.getResolution();
var source = hcm.getSource();
var url = source.getFeatureInfoUrl(
evt.coordinate, viewResolution, view.getProjection(),
{ 'INFO_FORMAT': 'application/json', 'FEATURE_COUNT': 50 });
if (url) {
$.ajax({
type: "POST",
url: url,
contentType: "application/json; charset=utf-8",
dataType: 'json',
success: function (n) {
var content = "<table>";
for (var i = 0; i < n.features.length; i++) {
var feature = n.features[i];
var featureAttr = feature.properties;
content += "<tr><td>Tên quận:" + featureAttr["name_2"]
+ "</td><td>Số hiệu quận:" + featureAttr["id_2"]
+"</td></tr>"
}
content += "</table>";
$("#info").html(content);
}
});
}
});

这是我获取功能的代码。

我该如何解决此问题?我编写此代码是为了创建基于OpenLayers库和GeoServer的WebGIS。但是当我尝试获取图层特征时,我遇到了问题。我无法解决!请帮助我!

this is my problem

javascript tomcat openlayers geoserver
2个回答
0
投票

有一些可用于您的浏览器的插件扩展。

转到设置->附件并搜索访问控制允许来源

安装并激活它可以刷新您的页面!


0
投票

默认情况下,浏览器块cross origin requests。简而言之,您的浏览器仅允许您对提供代码的服务器进行Ajax调用。当您的代码尝试向不是其源的服务器发出请求时,浏览器首先必须请求该服务器的许可。

[首先发出preflight request询问服务器是否可以满足请求。如果服务器返回Access-Control-Allow-Origin标头,则表示可以。然后浏览器向服务器发出真正的请求。如果服务器未返回Access-Control-Allow-Origin标头,则浏览器抛出错误,告诉您此请求被拒绝。

为了解决它,您必须在响应中包含该标头。

© www.soinside.com 2019 - 2024. All rights reserved.