Jaki jest najprostszy przykład SOAP przy użyciu Javascript?
Aby być jak najbardziej użytecznym, odpowiedź powinna:
- Bądź funkcjonalny (innymi słowy faktycznie działa)
- Wyślij co najmniej jeden parametr, który można ustawić w innym miejscu w kodzie
- Przetwórz co najmniej jedną wartość wyniku, którą można odczytać w innym miejscu kodu
- Pracuj z najnowszymi wersjami przeglądarki
- Bądź tak przejrzysty i jak najkrótszy, bez korzystania z zewnętrznej biblioteki
javascript
soap
Thomas Bratt
źródło
źródło
Odpowiedzi:
To najprostszy klient SOAP JavaScript, jaki mogę utworzyć.
źródło
xmlhttp.setRequestHeader('SOAPAction', 'http://myurl.com/action');
tuż przed tymxmlhttp.send(sr)
naprawiłem.Istnieje wiele dziwactw w sposobie, w jaki przeglądarki obsługują XMLHttpRequest, ten kod JS będzie działał we wszystkich przeglądarkach:
https://github.com/ilinsky/xmlhttprequest
Ten kod JS konwertuje XML na łatwe w obsłudze obiekty JavaScript:
http://www.terracoder.com/index.php/xml-objectifier
Powyższy kod JS może zostać zawarty na stronie, aby spełnić wymagania dotyczące braku zewnętrznej biblioteki.
Dwie inne opcje:
Klient JavaScript SOAP:
http://www.guru4.net/articoli/javascript-soap-client/en/
Wygeneruj JavaScript z WSDL:
https://cwiki.apache.org/confluence/display/CXF20DOC/WSDL+to+Javascript
źródło
Nie można tego zrobić za pomocą prostego JavaScript, chyba że usługa internetowa znajduje się w tej samej domenie co strona.Edycja: w 2008 r. I IE <10 nie można tego zrobić za pomocą prostego javascript, chyba że usługa jest w tej samej domenie co strona.Jeśli usługa internetowa znajduje się w innej domenie [i musisz obsługiwać IE <10], będziesz musiał użyć strony proxy w swojej własnej domenie, która pobierze wyniki i zwróci je tobie. Jeśli nie potrzebujesz starej obsługi IE, musisz dodać obsługę CORS do swojej usługi. W obu przypadkach powinieneś użyć czegoś takiego jak lib, który sugerują timyates, ponieważ nie chcesz samodzielnie analizować wyników.
Jeśli usługa internetowa znajduje się w Twojej domenie, nie używaj SOAP. Nie ma dobrego powodu, aby to zrobić. Jeśli usługa internetowa znajduje się w Twojej domenie, zmodyfikuj ją, aby mogła zwrócić JSON i zaoszczędzić sobie kłopotów ze wszystkimi problemami związanymi z SOAP.
Krótka odpowiedź brzmi: nie twórz żądań SOAP z javascript. Użyj usługi sieci Web, aby zażądać danych z innej domeny, a jeśli to zrobisz, przeanalizuj wyniki po stronie serwera i zwróć je w przyjaznej formie js.
źródło
XMLHttpRequest
, prawdopodobnie za pośrednictwem biblioteki, takiej jak jquery. Klient węzła użyłby czegoś innego. Większość usług internetowych używa REST jako przewodnika przy projektowaniu interfejsu API, ale istnieje wiele dobrych wzorców. Kluczem tutaj jest to, że ciała żądań / odpowiedzi są JSON, ponieważ klienci javascript (przeglądarka / węzeł / gdziekolwiek) rozumieją JSON natywnie.Możesz użyć wtyczki jquery.soap, aby wykonać pracę za Ciebie.
Przykładowe użycie ze strony:
źródło
Tomasz:
JSON jest preferowany do użytku z interfejsem, ponieważ jest javascript. Dlatego nie masz do czynienia z XMLem. Z tego powodu SOAP jest problemem bez korzystania z biblioteki. Ktoś wspomniał o SOAPClient, która jest dobrą biblioteką, zaczęliśmy od niego dla naszego projektu. Miało to jednak pewne ograniczenia i musieliśmy przepisać duże fragmenty. Został wydany jako SOAPj i obsługuje przekazywanie złożonych obiektów na serwer, a także zawiera przykładowy kod proxy do korzystania z usług z innych domen.
źródło
Czy ktoś tego próbował? https://github.com/doedje/jquery.soap
Wydaje się bardzo łatwy do wdrożenia.
Przykład:
spowoduje
źródło
Słuchaj najlepiej JavaScript z samouczkiem SOAP z przykładem.
http://www.codeproject.com/Articles/12816/JavaScript-SOAP-Client
źródło
Kilka świetnych przykładów (i gotowego klienta JavaScript SOAP!) Tutaj: http://plugins.jquery.com/soap/
Sprawdź plik Readme i strzeż się ograniczeń przeglądarki tego samego pochodzenia.
źródło
Łatwo korzystaj z usług internetowych SOAP z JavaScript -> Listing B
To może nie spełniać wszystkich twoich wymagań, ale jest to początek odpowiedzi na twoje pytanie. (Włączyłem XMLHttpRequest () dla ActiveXObject („MSXML2.XMLHTTP”) ).
źródło
Najprostszy przykład składałby się z:
Tworzenie komunikatu XML SOAP podobnego do tego
Wysyłanie wiadomości do adresu URL usługi sieci web za pomocą XHR
Analiza odpowiedzi SOAP XML usługi WWW jest podobna do tej
Prezentowanie wyników użytkownikowi.
Ale jest wiele problemów bez zewnętrznych bibliotek JavaScript.
źródło
źródło
Baza Angularjs $ http na XMLHttpRequest . Tak długo, jak w zestawie treści nagłówka zrobi następujący kod.
Na przykład:
źródło
Pytanie brzmi: „Jaki jest najprostszy przykład SOAP przy użyciu Javascript?”
Ta odpowiedź jest przykładem w środowisku Node.js , a nie w przeglądarce. (Nazwijmy skrypt soap-node.js) I użyjemy publicznej usługi SOAP z Europe PMC jako przykładu, aby uzyskać listę referencyjną artykułu.
Przed uruchomieniem kodu musisz zainstalować dwa pakiety:
Teraz możesz uruchomić kod:
I zobaczysz wynik, jak poniżej:
źródło