1 votos

API de ArcGIS para JavaScript - Problema de Featurelayer con CORS

He creado un sitio web sencillo:

        require([
      "esri/map",
      "esri/config",
      "esri/dijit/InfoWindowLite",
      "esri/InfoTemplate",
      "dojo/dom-construct",
      "dojo/domReady!"
    ], function (
        Map,
        esriConfig,
        InfoWindowLite,
        InfoTemplate,
        domConstruct
       ) {
        esriConfig.defaults.io.proxyUrl = "http://111.111.111.111:6969/agsproxy/proxy.ashx"
        esriConfig.defaults.io.alwaysUseProxy = true;
        var customExtentAndSR = new esri.geometry.Extent(-437000, -1244500, -409000, -1239500, new esri.SpatialReference({ wkid: 5514 }));
        map = new Map("mapDiv", { logo: false, extent: customExtentAndSR, nav: false, slider: false, fitExtent: true, fadeOnZoom: true, showAttribution: false });
        var infoWindow = new InfoWindowLite(null, domConstruct.create("div", null, null, map.root));

infoWindow.startup();
 map.setInfoWindow(infoWindow);
 var template = new InfoTemplate();
var featureLayer = new esri.layers.FeatureLayer("http://111.111.111.111:6969/ags/rest/services/VSLP2014/jprl_plochy/MapServer/0", {
 mode: esri.layers.FeatureLayer.MODE_SNAPSHOT,
 infoTemplate: template,
 outFields: ["*"]
 });
 map.addLayer(featureLayer);
    });

Cuando uso "MODE_SNAPSHOT" para mi featurelayer, la capa se muestra y es posible mostrar la infoplantilla. Pero cuando vuelvo a ejecutar mi sitio web, parece que hay un problema con CORS (No está presente la cabecera 'Access-Control-Allow-Origin' en el recurso solicitado. Origen ' http://localhost:12345 Por lo tanto, no se permite el acceso). Una vez está todo bien, una vez no. Cuando ejecuto mi sitio web 10 veces, aproximadamente 5 veces es problema con CORS. Cuando uso "MODE_ONDEMAND" está bien pero cuando hago zoom en mi capa, el problema con CORS se muestra y la capa ampliada no se muestra. Cuando uso este código de ejemplo con la misma capa pero como dynamicservicelayer con etiquetas, parece estar bien. ¿Puede alguien ayudarme con este problema? ¿Es un problema de configuración en el proxy?

2voto

Ryan Ahearn Puntos 3829

Cuando se comunica con un servicio que utiliza la API de Javascript de Esri, una página proxy sólo evitará los problemas de CORS si la página proxy utiliza el mismo prefijo de URL que el sitio web original.

Por lo tanto, si su sitio web es http://localhost:12345/path/to/index.html la solicitud a: http://111.111.111.111:6969/agsproxy/proxy.ashx?http://111.111.111.111:6969/ags/rest/services/VSLP2014/jprl_plochy/MapServer/0 ...sigue cruzando un origen y activará el prevuelo y las comprobaciones del CORS.

Si puede ejecutar la página proxy en algún lugar detrás de http://localhost:12345 entonces no debería ver los errores CORS.

No sé por qué sólo ves el problema la mitad de las veces.

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