Verwenden des Proxys in Ihrer Webanwendung

In diesem Abschnitt wird beschrieben, wie der Proxy in Ihrer Webanwendung verwendet wird.

Importieren von „ria.js“

Im ersten Schritt müssen Sie „OpenLayers“ und die JavaScript-API-Hauptbibliothek importieren. Gehen Sie dazu wie folgt vor:


<script type="text/javascript" src="http://<server>:<port>/ria/openlayers/OpenLayers.js"></script>			
<script type="text/javascript" src="http://<server>:<port>/ria/ria.js"></script>
			

Ersetzen Sie localhost:8080 durch den tatsächlichen Hostnamen und die tatsächliche Portnummer, unter dem bzw. unter der die JavaScript-API installiert ist.

Alle JavaScript-Ressourcen, die heruntergeladen werden sollen, müssen in einer öffentlich zugänglichen URL enthalten sein (und alle URLs innerhalb dieser JS-Dateien müssen auch öffentlich zugänglich sein), damit JavaScript-API-Komponenten in Ihrer Webanwendung öffentlich verfügbar gemacht werden können.

Definieren des Pfades zu Ihrem Proxy

Der Pfad zum Proxy muss wie folgt registriert werden, damit angegeben werden kann, dass domänenübergreifende Aufrufe über einen Proxy weitergeleitet werden sollen:


ria.RestService.addProxy("/riaproxy/?url=");
			

Statt direkt eine URL für eine andere Domäne aufzurufen, hängt der JavaScript-Bibliothekscode die codierte URL an das Ende des oben registrierten Pfades an und führt die Anforderung unter Verwendung des Ergebnisses durch. Der Proxy verwendet die URL aus dem Anforderungsparameter (standardmäßig URL), fordert die mit ihr verknüpfte zugeordnete Ressource an und sendet das Ergebnis ohne Änderungen wieder an den JavaScript-Bibliothekscode. Welcher Pfad genau an die Methode „addProxy()“ übergeben wird, hängt davon ab, welcher Proxy verwendet wird und wie der Proxy bereitgestellt wurde.

Anmerkung: Bei oben stehendem Pfad handelt es sich um den Standardpfad für den Java-Servlet-Proxy. Verwenden Sie für den IIS-Proxy den Pfad „/riaproxy/Proxy.aspx?url=“.

Codebeispiel

Eine einfache Seite zum Durchführen einer Feature-Suche:


<!DOCTYPE html>
<html>
    <head>
        <script src="http://<server>:<port>/ria/openlayers/OpenLayers.js"></script>
        <script src="http://<server>:<port>/ria/ria.js"></script>
    </head>
    <body>
        <button onclick="search();">Search</button>
        <script>
			ria.RestService.addProxy("/riaproxy/?url=");
            function search() {
                var fs = new ria.search.FeatureService(
                        "http://<server>:<port>/rest/Spatial/FeatureService");
                var d = fs.searchNearest({
                    table: "/Samples/NamedTables/WorldcapTable",
                    geometry: new OpenLayers.Geometry.Point(12.875977, 47.813155),
                    srs: "epsg:4326",
                    attributes: ["Capital"],
                    withinDistance: "2000 mi",
                    distanceAttributeName: "dist",
                    maxFeatures: 10
                });
                d.addCallback(function(result) {alert(result.features.length + " result(s)")});
            }
        </script>       
    </body>
</html
			

Testen Sie diese Beispielwebanwendung, indem Sie sie in Ihrem Browser anzeigen und auf Suchen klicken.

Es wird ein Dialogfeld mit den Ergebnissen der Feature-Suche angezeigt:

In einem Web-Debugger wie Fiddler können Sie eine Auflistung der 10 Ergebnisse sehen:

{"type":"FeatureCollection","Metadata":[{"type":"String","name":"Capital"},
{"type":"Double","name":"dist"}],"features":[{"type":"Feature","properties"
:{"Capital":"Ljubljana","dist":143.84489998699985}},{"type":"Feature","properties" 
:{"Capital":"Vienna","dist":161.4848812627603}},{"type":"Feature","properties"
:{"Capital":"Vaduz","dist":163.332701859974}},{"type":"Feature","properties"
:{"Capital":"Prague","dist":173.87473824107374}},{"type":"Feature","properties"
:{"Capital":"Bratislava","dist":198.09553406882614}},{"type":"Feature","properties"
:{"Capital":"Zagreb","dist":201.31855154101802}},{"type":"Feature","properties"
:{"Capital":"Bern","dist":260.92616074609}},{"type":"Feature","properties"
:{"Capital":"San Marino","dist":267.4791030110629}},{"type":"Feature","properties"
:{"Capital":"Budapest","dist":290.00905102083885}},{"type":"Feature","properties"
:{"Capital":"Berlin","dist":325.56576583498344}}]}

Fehlerbehebung bei einem .NET-Proxy

Wenn bei der Remote-Dienstanforderung eine Ausnahme auftritt oder ein Authentifizierungsproblem vorliegt, werden der HTTP-Statuscode, die Beschreibung, Header, URL und der HTML-Textkörper in ein Ereignisprotokoll eingefügt. Dieses Protokoll wird im Microsoft Event Viewer als „Proxydienst von Pitney Bowes“ angezeigt.