首页 / 浏览问题 / 云GIS / 问题详情
iclient for leaflet 跨域问题
2EXP 2018年07月19日
环境:iserver 8c ,linux环境下。请求出现跨域:Failed to load http://192.168.39.5:8090/iserver/services/data-a1/rest/data/queryResults.json?returnContent=true: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:63342' is therefore not allowed access. The response had HTTP status code 404.

1个回答

您好,1.您是用什么功能的时候出现这个问题?2.您是服务端用的iserver8c但是客户端用的iclient9d?
4,524EXP 2018年07月20日

你好,非常抱歉,第一提问,没有经验,问题没有说清楚。我的客户端是 supermap_iclient_9.0.1 for leaflet。把supmap 桌面端生成好的数据,发布到isever 8c上,发布的时候,选择的是地图服务和数据服务。然后用leaflet能正常加载数据。现在的问题是,我想把数据集里的属性数据读取出来,读的过程,遇到跨域问题。代码如下:

var param = new SuperMap.QueryBySQLParameters({
    queryParams: {
        name: "省会城市@zhongguo",
        attributeFilter: "SMID < 10"
    }
});
var t_url = 'http://192.168.39.5:8090/iserver/services/data-a1/rest/data'
L.supermap.queryService(t_url).queryBySQL(param, function (serviceResult) {
    var result = serviceResult.result;
    resultLayer = L.geoJSON(result.recordsets[0].features).addTo(map);
});

L.supermap.queryService 这里报跨域问题。

因为在iserver8c的时候还没有 supermap_iclient_9.0.1 for leaflet这个产品,所以8c服务端没有针对这个客户端做过跨域处理,您可以把iserver换成9d版本,这样肯定不会出现跨域问题了。
...