Mais

Erro de proxy com ArcGIS PrintTask - AMD

Erro de proxy com ArcGIS PrintTask - AMD


Estou tentando adicionar uma camada simples de segurança ao meu aplicativo ArcGIS JS. Não quero solicitar a meus usuários um login para recuperar um token. Então, em vez disso, passo o nome de usuário / senha dentro deste proxy PHP: https://github.com/Esri/resource-proxy/tree/master/PHP

Isso funciona muito bem para todas as minhas necessidades, EXCETO quando tento executar o PrintTask. Recebo um erro CORS porque o proxy não está sendo anexado aos URLs da camada dentro da string "Mapa da Web como JSON".

Basicamente, tenho meu javascript AMD configurado da seguinte maneira:

// em 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} // em print.js // faço todo o meu carregamento de AMD… // em meu printLayout: do stuff var params = new PrintParameters (); params.map = map; printTask.execute (params, function () {…}

Recebo o seguinte erro se o firebug:

Suponho que esteja quebrando por causa do meu escopo / estrutura assíncrona. Quando eu prefixo o proxy para os urls na tarefa de processamento REST GP, ele imprime conforme o esperado.

Alguém pode pensar em uma solução alternativa que me permitiria usar a mesma lógica de usar este proxy.php simples para passar credenciais de segurança que também adicionam meu proxy ao meu mapa da web como url json?


você deu uma olhada neste artigo?

Impressão de mapas que contêm serviços protegidos http://resources.arcgis.com/en/help/main/10.2/#/Printing_maps_that_contain_secured_services/0154000005q3000000/

em geral, não é suficiente tentar fornecer urls com proxy no WebmapJSON porque o PrintService terá que fazer suas próprias chamadas totalmente separadas (e acredito que SOAPy) para obter os dados e criar sua saída.

Se eu estiver errado e você já tiver configurado um serviço dedicado de 'SecurePrinting', avise-me.


Assista o vídeo: How to print Webpage content Using javascript-Easy tutorial