Warum ruft meine jQuery AJAX keine Daten an einen Webservice zurück? Warum passiert nichts, wenn ich meinen Webservice anrufe? Warum kann mein Web-Service-Client keinen Web-Service auf einem anderen Server / einer anderen Domäne nutzen?
Ich habe viel Zeit damit verbracht, herauszufinden, wie ich meine jquery-UI-Anwendung dazu bringen kann, einen Web-Service in einer anderen Domain zu nutzen. Ich habe es endlich herausgefunden und notiere hier die Details für jeden, der sich dieser Herausforderung in der Zukunft stellt. Beachten Sie, dass ich jquery $ .ajax-Aufrufe für eine Reihe von Documentum DFS POJO-Webdiensten verwendete, die in einem JBOSS v4-Container gehostet werden. Neuere Versionen von Tomcat / JBOSS erleichtern das erheblich.
Hier ist die jQuery-Seite der Gleichung:
%Vor%Der eigentliche Webdienst, der aufgerufen wird, ist ein triviales Problem. Noch wichtiger ist, dass Sie einen Filter implementieren müssen, um Netzwerksicherheitsfehler zu vermeiden, wenn Sie diesen Dienst aufrufen (wenn er in einer anderen Domäne gehostet wird). Das erfordert natürlich die Änderung der web.xml für die Anwendung und die Implementierung einer Filterklasse.
Hier sind Zeilen, die ich der web.xml hinzugefügt habe:
%Vor%Und hier ist die eigentliche Implementierung der Java-Klasse:
%Vor%Und alles, was zusammengefügt wird, funktioniert.