Was ist das einfachste SOAP-Beispiel mit Javascript?
Um so nützlich wie möglich zu sein, sollte die Antwort:
- Seien Sie funktional (mit anderen Worten, tatsächlich funktionieren)
- Senden Sie mindestens einen Parameter, der an anderer Stelle im Code festgelegt werden kann
- Verarbeiten Sie mindestens einen Ergebniswert, der an anderer Stelle im Code gelesen werden kann
- Arbeiten Sie mit den meisten modernen Browserversionen
- Seien Sie so klar und kurz wie möglich, ohne eine externe Bibliothek zu verwenden
javascript
soap
Thomas Bratt
quelle
quelle
Antworten:
Dies ist der einfachste JavaScript-SOAP-Client, den ich erstellen kann.
quelle
xmlhttp.setRequestHeader('SOAPAction', 'http://myurl.com/action');
kurz vor demxmlhttp.send(sr)
Fixieren.Die Art und Weise, wie Browser mit XMLHttpRequest umgehen, weist viele Besonderheiten auf. Dieser JS-Code funktioniert in allen Browsern:
https://github.com/ilinsky/xmlhttprequest
Dieser JS-Code konvertiert XML in benutzerfreundliche JavaScript-Objekte:
http://www.terracoder.com/index.php/xml-objectifier
Der obige JS-Code kann in die Seite aufgenommen werden, um Ihre Anforderungen an keine externe Bibliothek zu erfüllen.
Zwei weitere Optionen:
JavaScript-SOAP-Client:
http://www.guru4.net/articoli/javascript-soap-client/en/
Generieren Sie JavaScript aus einer WSDL:
https://cwiki.apache.org/confluence/display/CXF20DOC/WSDL+to+Javascript
quelle
Dies ist mit reinem JavaScript nur möglich, wenn sich der Webdienst in derselben Domain wie Ihre Seite befindet.Bearbeiten: In 2008 und in IE <10 kann dies nicht mit reinem Javascript durchgeführt werden, es sei denn, der Dienst befindet sich in derselben Domain wie Ihre Seite.Wenn sich der Webdienst in einer anderen Domäne befindet [und Sie IE <10 unterstützen müssen], müssen Sie eine Proxyseite in Ihrer eigenen Domäne verwenden, die die Ergebnisse abruft und an Sie zurücksendet. Wenn Sie keine alte IE-Unterstützung benötigen, müssen Sie Ihrem Service CORS-Unterstützung hinzufügen. In beiden Fällen sollten Sie so etwas wie die von timyates vorgeschlagene Bibliothek verwenden, da Sie die Ergebnisse nicht selbst analysieren müssen.
Wenn sich der Webdienst in Ihrer eigenen Domain befindet, verwenden Sie SOAP nicht. Es gibt keinen guten Grund dafür. Wenn sich der Webdienst in Ihrer eigenen Domain befindet, ändern Sie ihn so, dass er JSON zurückgibt und sich die Mühe erspart, alle mit SOAP verbundenen Probleme zu lösen.
Die kurze Antwort lautet: Stellen Sie keine SOAP-Anfragen aus Javascript. Verwenden Sie einen Webdienst, um Daten von einer anderen Domäne anzufordern. Wenn Sie dies tun, analysieren Sie die Ergebnisse auf der Serverseite und geben Sie sie in einer js-freundlichen Form zurück.
quelle
XMLHttpRequest
, wahrscheinlich über eine Bibliothek wie jquery. Ein Knotenclient würde etwas anderes verwenden. Die meisten Webdienste verwenden REST als Leitfaden für das Entwerfen ihrer API, aber es gibt viele gute Muster. Der Schlüssel hier ist, dass die Anforderungs- / Antwortkörper JSON sind, da Javascript-Clients (Browser / Knoten / überall) JSON nativ verstehen.Sie können das Plugin jquery.soap verwenden , um die Arbeit für Sie zu erledigen.
Beispiel für die Verwendung auf der Website:
quelle
Thomas:
JSON wird für die Front-End-Verwendung bevorzugt, da es sich um Javascript handelt. Daher müssen Sie sich nicht mit XML befassen. SOAP ist aus diesem Grund ein Schmerz ohne Verwendung einer Bibliothek. Jemand erwähnte SOAPClient, eine gute Bibliothek, wir haben damit für unser Projekt begonnen. Es gab jedoch einige Einschränkungen und wir mussten große Teile davon neu schreiben. Es wurde als SOAPjs veröffentlicht und unterstützt die Übergabe komplexer Objekte an den Server. Es enthält einen Beispiel-Proxy-Code, um Dienste aus anderen Domänen zu nutzen.
quelle
Hat jemand das versucht? https://github.com/doedje/jquery.soap
Scheint sehr einfach zu implementieren.
Beispiel:
wird darin enden, dass
quelle
Hören ist am besten JavaScript mit SOAP Tutorial mit Beispiel.
http://www.codeproject.com/Articles/12816/JavaScript-SOAP-Client
quelle
Einige großartige Beispiele (und ein vorgefertigter JavaScript-SOAP-Client!) Hier: http://plugins.jquery.com/soap/
Überprüfen Sie die Readme-Datei und beachten Sie die Einschränkungen des Browsers mit demselben Ursprung.
quelle
Nutzen Sie SOAP-Webdienste ganz einfach mit JavaScript -> Listing B.
Dies erfüllt möglicherweise nicht alle Ihre Anforderungen, ist jedoch ein Anfang bei der tatsächlichen Beantwortung Ihrer Frage. (Ich habe XMLHttpRequest () für ActiveXObject ("MSXML2.XMLHTTP") gewechselt .)
quelle
Das einfachste Beispiel wäre:
Erstellen einer ähnlichen XML-SOAP-Nachricht
POST-Nachricht an die Webservice-URL mit XHR
Parsen der XML-SOAP-Antwort des Webservices ähnlich
Präsentieren der Ergebnisse für den Benutzer.
Aber ohne externe JavaScript-Bibliotheken ist das ein großer Aufwand.
quelle
quelle
Angularjs $ http-Wrap basiert auf XMLHttpRequest . Solange der Header-Inhalt festgelegt ist, reicht der folgende Code aus.
Beispielsweise:
quelle
Die Frage lautet: "Was ist das einfachste SOAP-Beispiel mit Javascript?"
Diese Antwort ist eher ein Beispiel in der Node.js- Umgebung als ein Browser. (Nennen wir das Skript soap-node.js) Und wir werden den öffentlichen SOAP-Webdienst von Europe PMC als Beispiel verwenden, um die Referenzliste eines Artikels zu erhalten.
Bevor Sie den Code ausführen, müssen Sie zwei Pakete installieren:
Jetzt können Sie den Code ausführen:
Und Sie sehen die Ausgabe wie folgt:
quelle