Suite

Même problème de politique d'origine en utilisant WFS-T avec Geoserver & OpenLayers 3


J'essaie d'utiliser un service WFS-T pour insérer un simple point d'OpenLayers 3 dans Geoserver dans une VirtualBox (environnement de test). Il y a toujours le même message d'erreur :

Échec du chargement de la ressource : l'origine http://localhost:8383 n'est pas autorisée par Access-Control-Allow-Origin. sur http://HOST_IP:8082/geoserver/test/wfs XMLHttpRequest ne peut pas charger http://HOST_IP:8082/geoserver/test/wfs. L'origine http://localhost:8383 n'est pas autorisée par Access-Control-Allow-Origin. (13:29:51:925 | erreur, javascript) sur resources/webappv1.html

J'ai pris le problème et j'ai essayé de le résoudre avec Cross-Origin Resource Sharing (CORS). (http://en.wikipedia.org/wiki/Cross-origin_resource_sharing)

Un ProxyPass (comme http://www.gistutor.com/geoserver/21-intermediate-geoserver-tutorials/38-configuring-geoserver-proxy-for-public-and-remote-data-access.html) serait pour la sécurité raison seulement une mauvaise alternative.

J'ai trouvé une solution sur Geoserver Mailing Archive par Dusan Fedorcak (Recherchez [Geoserver-users] CORS pour la jetée 6.1.8 (Geoserver 2.x)) et j'ai essayé de la gérer, mais cela ne fonctionne toujours pas.

Où puis-je me tromper ? Ou existe-t-il un autre workflow pour faire une demande de publication avec OL3 ?

Voici mes versions :

  • OpenLayers 3
  • Geosever 2.4.4 fonctionne sur VirtualBox 4.3.10 avec l'installation OSGeo Live7.9
  • Jetée 6.1.8
  • PostGIS 2.1.1

Voici mon code :

var xmlData = +'< wfs:Transaction
' + 'service = "WFS"
' + 'version = "1.0.0"
' + 'xmlns:wfs = "http://www.opengis.net /wfs"
' + 'xmlns:gml = "http://www.opengis.net/gml"
' + 'xmlns:test = "http://test.org"
' + 'xmlns : xsi = "http://www.w3.org/2001/XMLSchema-instance" 
' + 'xsi:schemaLocation = "http://www.opengis.net/wfs 
' + 'http://HOST_IP :8082/geoserver/schemas/wfs/1.0.0/WFS-basic.xsd 
' + 'http://test.org/ 
' + 'http://HOST_IP:8082/geoserver/test/wfs/ DescribeFeatureType? typename=test:user_poi">
' + '< wfs:Insert >
' + '< test:user_poi >
' + '< test:gid >' + gid + '< /test:gid> 
' + '< test:id >' + id + '< /test:id>
' + '< test:tid >' + id + '< /test:tid>
' + '< test : auid >' + auid + '< /test:auid>
' + '< test:mdid >' + mdid + '< /test:mdid>
' + '< test:text >' + text + '< /test:text>
' + '< test:the_geom >
' + '< gml:Point srsDimension = "2" srsName = "urn:x-ogc:def:crs:EPSG:3857" 
' + '< gml:coordinates decimal = "." cs = "," ts = " " >' + lat + ',' + long + '< /gml:coordinates>
' + '< /gml:Point>
' + '< /test:the_geom> n' + '< /test:user_poi>
' + '< /wfs:Insert>
' + '< /wfs:Transaction>
'; $.ajax({ type : "POST", crossDomain : true, url : wfsurl, dataType : "xml", contentType : "text/xml", data : xmlData, xhrFields : { withCredentials : true }, nom d'utilisateur : 'user' , mot de passe : 'user', succès : function(data, textStatus, request) { alert(request.getResponseHeader('some_header')); }, erreur : function(request, textStatus, errorThrown) { alert(request.getResponseHeader(' some_header')); } });

Merci pour ton aide!


Voir la vidéo: Geoserver for WebGIS development WMS, WFS, WFS-T Service, Feature editing on web. (Octobre 2021).