Mehr

Access-Control-Allow-Origin in Geoserver und ol3


Ich verwende OL3, Geoserver. Ich habe eine Website mit Asp.net erstellt und eine Karte mit OL3 hinzugefügt. das heißt Daten vom Geoserver mit WFS abrufen. Meine Website befindet sich in C:ProgrammdateiGeoserverwwwmysite. Konfigurieren Sie IIS auch so, dass, wenn der Client (mit IP 192.168.0.100) auf die IP des Servers klickt, die Website angezeigt wird. (Server-IP ist 192.168.0.1) Das Problem ist, dass ich diesen Fehler erhalte.

XMLHttpRequest kann http://localhost:8000/geoserver/cite/ows?service=WFS&version=1.0.0&request=… e&typeName=cite:MyFeature&maxFeatures=50&outputFormat=application/json nicht laden. Auf der angeforderten Ressource ist kein Header 'Access-Control-Allow-Origin' vorhanden. Origin 'http://192.168.0.100' hat daher keinen Zugriff.

Wie kann ich IIS und Geoserver konfigurieren, die dieses Problem lösen?


Beim Googeln habe ich eine Antwort gefunden, die Ihnen helfen kann, CORS einzustellen, wenn Sie mit Tomcat dienen. CORS hilft Ihnen, die Ajax-Richtlinie für denselben Ursprung zwischen Domänen zu ändern.

Eine andere Alternative kann sein, ARR (Application Request Routing) zu verwenden, um IIS als Proxy zu verwenden, sodass alles von derselben IP zu kommen scheint und Sie den gleichen Ursprungsrichtlinienfehler vermeiden, den Sie derzeit haben. Sehen Sie sich in diesem Fall dieses Tutorial an.

Vielleicht gibt es andere Lösungen, aber ich komme nicht aus der IIS-Welt (ich verwende jetzt hauptsächlich Linux)


Ich habe viel versucht, den IIS ARR-Reverse-Proxy zu konfigurieren, aber leider war es für mich nicht nützlich. Auch die Verwendung von CORS ist keine gute Idee, da einige Browser dies nicht unterstützen. Also wurde ich von Generic Handler einen Proxy in asp.net schreiben. Erstellen Sie die Datei proxy.ASHX. Übergeben Sie dann die URL an diese Datei. mögen:

url = "proxy.ashx?url=http://localhost:8080/geoserver/wfs/… "

dann benutze WebAnfrage um meine Anfrage zu senden und die Antwort bis zu erhalten HttpWebResponse und schicke es an meine Website zurück.