iclient for leaflet 跨域问题

0 投票
环境: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.
7月 19, 2018 分类:  428次浏览 | 用户: wanlen344 (2 分)

1个回答

0 投票
您好,1.您是用什么功能的时候出现这个问题?2.您是服务端用的iserver8c但是客户端用的iclient9d?
7月 20, 2018 用户: 李熙y 名扬四海 (4,436 分)

你好,非常抱歉,第一提问,没有经验,问题没有说清楚。我的客户端是 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版本,这样肯定不会出现跨域问题了。
...