1 votos

Error de proxy con ArcGIS PrintTask - AMD

Estoy tratando de añadir una simple capa de seguridad a mi aplicación ArcGIS JS. No quiero pedir a mis usuarios un inicio de sesión para recuperar un token. Así que en su lugar paso el nombre de usuario/contraseña dentro de este proxy PHP: https://github.com/Esri/resource-proxy/tree/master/PHP

Esto funciona muy bien para todas mis necesidades EXCEPTO cuando intento ejecutar el PrintTask. Obtengo un error CORS porque el proxy no se antepone a las URL de las capas dentro de la cadena "Web Map as JSON".

web map as json string

Básicamente tengo mi AMD javascript configurado de la siguiente manera:

//in init.js
defne(["dojo/ready", "esri/urlUtils", "esri/tasks/PrintTask", "app/myConfig"], function(ready, urlUtils, PrintTask, config){
ready(function(){
    urlUtils.addProxyRule({
        urlPrefix: "myMachine.org"
        proxyUrl: "myMachine.org/proxy/"
    });

    printTask = new PrintTask(config.helperServices.printUrl); //global
}

//in print.js
//do all my AMD loading stuff...
//within my printLayout: do stuff

var params = new PrintParameters();
params.map = map;
printTask.execute(params, function(){...}

Recibo el siguiente error si firebug: enter image description here

Supongo que se está rompiendo porque mi async alcance / estructura. Cuando antepongo el proxy a las urls en la tarea de procesamiento REST GP se imprime como se esperaba.

¿Puede alguien pensar en una solución que me permitiría utilizar la misma lógica de utilizar este simple proxy.php para pasar las credenciales de seguridad que también antepone mi proxy a mi mapa web como url json?

1voto

user21012 Puntos 21

¿ha echado un vistazo a este artículo?

Impresión de mapas que contienen servicios protegidos http://resources.arcgis.com/en/help/main/10.2/#/Printing_maps_that_contain_secured_services/0154000005q3000000/

en general, no es suficiente para tratar de suministrar urls proxy en el WebmapJSON porque el PrintService en última instancia, va a tener que hacer su propio totalmente independiente (y creo SOAPy) llamadas para obtener los datos y crear su salida.

Si no estoy en lo cierto y ya han creado un servicio "SecurePrinting" dedicado, les ruego que me lo comuniquen.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X