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".
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:
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?