Cómo agregar un encabezado de solicitud personalizado al cliente iClient de SuperMap 2D (1)

Autor: Liu

Este artículo se ha actualizado sincrónicamente en el artículo de Jianshu https://www.jianshu.com/p/79f9394d4b45

En la aplicación real del proyecto, a veces es necesario agregar algunos encabezados de solicitud personalizados a la solicitud de envío. Ahora echemos un vistazo a cómo se usa el pellizco en el cliente iClient de SuperMap 2D.

1. Soporte de versión

IClient bidimensional para folletos / Openlayers / MapboxGL se ha agregado desde SuperMap iClient versión 10i.

2. Preparación antes del uso

Dado que SuperMap iServer permitió los parámetros de configuración del conjunto de nombres de encabezado de solicitud, antes del extremo frontal del encabezado de solicitud, la necesidad de extraer el directorio \ webapps \ iserver \ WEB-INF \ web.xml iServer en cors.allowed.headers aumenta de valor, por ejemplo, ahora necesitamos agregar los dos parámetros personalizados de token y apptoken, debemos agregarlos de acuerdo con la siguiente figura

<init-param>
		<param-name>cors.allowed.headers</param-name>
		<param-value>Content-Type,X-Requested-With,accept,Origin,Access-Control-Request-Method,Access-Control-Request-Headers,token,apptoken</param-value>
 </init-param>

Si no configura, verá el siguiente error al solicitar desde el front-end:
image.png

Sugerencias: Después de que el encabezado de solicitud personalizado del token esté en la versión SuperMap iServer10i, iServer analizará y verificará el token del usuario (cuando el servicio está autorizado, el token debe usarse para verificar si el servicio está autorizado para acceder. Así que personalice Don no use token como el nombre de su propio encabezado de solicitud
3. Uso específico de iClient para Leaflet / Openlayers / MapboxGL
3.1 Se pueden agregar encabezados a la interfaz de servicio que tiene la función de interactuar con iServer

Es decir, L.supermap. * Service (Leaflet), ol.supermap. * Service (Openlayers), mapboxgl.supermap. * Service (MapboxGL) interfaces todos los encabezados de soporte, Classic no tiene este parámetro, puede usar el siguiente global ajustes

#Leaflet
L.supermap
	.featureService(url,{
    
    headers: {
    
    
		apptoken: '...'
	}})
	.getFeaturesByGeometry(geometryParam, function (serviceResult) {
    
    });
}

#Openlayers
ol.supermap
	.featureService(url, {
    
    headers: {
    
    
		apptoken: '...'
	}})
	.getFeaturesByGeometry(geometryParam, function (serviceResult) {
    
    });
}

#MapboxGL
mapboxgl.supermap
    .featureService(url, {
    
    headers: {
    
    
		apptoken: '...'
	}})
	.getFeaturesByGeometry(geometryParam, function (serviceResult) {
    
    });
}
3.2 Configuración global

Antes de la función de interactuar con el servicio iServer, vuelva a escribir el siguiente método para traer una señal de cabecera de solicitud personalizada y realice la configuración global

#  iClient for Leaflet/Openlayers/MapboxGL
SuperMap.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)
		}
#Classic
SuperMap.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)
        }
Consejo: en Classic, si el dominio no es el mismo que iSever, se solicitará el formato jsonp, pero la solicitud jsonp está esencialmente incrustada

Método: isInTheSameDomain se establece en verdadero

 getFeatureBySQLService = new SuperMap.REST.GetFeaturesBySQLService(url2, {
    
    
            eventListeners: {
    
    "processCompleted": processCompleted, "processFailed": processFailed},
            isInTheSameDomain:true
        });

Este artículo presenta principalmente la interfaz funcional que interactúa con iserver para agregar encabezados de solicitud. El siguiente artículo presentará en detalle cómo agregar mosaicos de mapas

Supongo que te gusta

Origin blog.csdn.net/supermapsupport/article/details/112261598
Recomendado
Clasificación