本文共 2487 字,大约阅读时间需要 8 分钟。
作者:刘大
本文已同步更新于简书文章
在项目实际应用中,有时候需要在发送请求中添加一些自定义的请求头,那现在来看看SuperMap二维iClient客户端中是如何是使用的捏
二维iClient for Leaflet/Openlayers/MapboxGL 从SuperMap iClient 10i版本起就支持增加。
由于SuperMap iServer中有设置的允许的请求头参数名配置,在前端设置请求头前,需在iServer解压目录\webapps\iserver\WEB-INF\web.xml中的cors.allowed.headers增加value,譬如,现在我们需要增加token,apptoken这两个自定义参数,则需按照下图添加
cors.allowed.headers Content-Type,X-Requested-With,accept,Origin,Access-Control-Request-Method,Access-Control-Request-Headers,token,apptoken
如果不进行配置,在前端请求时,会看到如下错误:
即以 L.supermap.*service(Leaflet),ol.supermap.*service(Openlayers),mapboxgl.supermap.*service(MapboxGL)接口都支持headers,Classic无此参数,可使用下面的全局设置
#LeafletL.supermap .featureService(url,{ headers: { apptoken: '...' }}) .getFeaturesByGeometry(geometryParam, function (serviceResult) { });}#Openlayersol.supermap .featureService(url, { headers: { apptoken: '...' }}) .getFeaturesByGeometry(geometryParam, function (serviceResult) { });}#MapboxGLmapboxgl.supermap .featureService(url, { headers: { apptoken: '...' }}) .getFeaturesByGeometry(geometryParam, function (serviceResult) { });}
在与iServer的服务交互的功能前,重写下面的方法带上自定义请求头token,进行全局设置
# iClient for Leaflet/Openlayers/MapboxGLSuperMap.FetchRequest.commitbak = SuperMap.FetchRequest.commit;SuperMap.FetchRequest.commit = function (method, url, params, options) { options.headers = options.headers || { token: '42f_WTvu4du_QouTxU9C6qSRiQml38DVN2vXyjOT-wbhYwfKu1qKqA6_fvAW_I_cC1Zthpgeb7gxOxbpyeATsQ..' } return SuperMap.FetchRequest.commitbak(method, url, params, options) }#ClassicSuperMap.Util.commit= SuperMap.Util.committer;SuperMap.Util.committer = function (options) { options.headers = options.headers || { token: '42f_WTvu4du_QouTxU9C6qSRiQml38DVN2vXyjOT-wbhYwfKu1qKqA6_fvAW_I_cC1Zthpgeb7gxOxbpyeATsQ..' } return SuperMap.Util.commit(options) }
方式:isInTheSameDomain设置为true
getFeatureBySQLService = new SuperMap.REST.GetFeaturesBySQLService(url2, { eventListeners: { "processCompleted": processCompleted, "processFailed": processFailed}, isInTheSameDomain:true });
这篇主要介绍和iserver交互的功能接口添加请求头,在下一篇会详细介绍地图瓦片如何添加
转载地址:http://qspxi.baihongyu.com/