Suite

Erreur de proxy avec ArcGIS PrintTask - AMD

Erreur de proxy avec ArcGIS PrintTask - AMD


J'essaie d'ajouter une simple couche de sécurité à mon application ArcGIS JS. Je ne veux pas demander à mes utilisateurs de se connecter pour récupérer un jeton. Donc, à la place, je passe le nom d'utilisateur/mot de passe dans ce proxy PHP : https://github.com/Esri/resource-proxy/tree/master/PHP

Cela fonctionne très bien pour tous mes besoins SAUF lorsque j'essaie d'exécuter la tâche d'impression. J'obtiens une erreur CORS car le proxy n'est pas ajouté aux URL de couche dans la chaîne "Web Map as JSON".

J'ai essentiellement configuré mon javascript AMD comme suit :

//dans 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 //faire tous mes trucs de chargement AMD… //dans mon printLayout : faire des trucs var params = new PrintParameters(); params.map = map; printTask.execute(params, function(){… }

Je reçois l'erreur suivante si firebug :

Je suppose que cela casse parce que ma portée/structure asynchrone. Lorsque j'ajoute le proxy aux URL dans la tâche de traitement REST GP, il s'imprime comme prévu.

Quelqu'un peut-il penser à une solution de contournement qui me permettrait d'utiliser la même logique d'utilisation de ce simple proxy.php pour transmettre des informations d'identification de sécurité qui préfixent également mon proxy à ma carte Web en tant qu'URL json?


avez-vous jeté un oeil à cet article?

Impression de cartes contenant des services sécurisés http://resources.arcgis.com/en/help/main/10.2/#/Printing_maps_that_contain_secured_services/0154000005q3000000/

en général, il ne suffit pas d'essayer de fournir des URL proxy dans WebmapJSON car le service d'impression devra finalement faire ses propres appels entièrement séparés (et je crois SOAPy) pour récupérer les données et créer sa sortie.

Si je suis hors de la base et que vous avez déjà mis en place un service dédié « SecurePrinting », veuillez me le faire savoir.