Qual é o exemplo SOAP mais simples usando Javascript?
Para ser o mais útil possível, a resposta deve:
- Seja funcional (em outras palavras, realmente funcione)
- Envie pelo menos um parâmetro que possa ser definido em outra parte do código
- Processe pelo menos um valor de resultado que possa ser lido em outra parte do código
- Trabalhar com as versões mais modernas do navegador
- Seja o mais claro e o mais curto possível, sem usar uma biblioteca externa
javascript
soap
Thomas Bratt
fonte
fonte
Respostas:
Este é o cliente SOAP JavaScript mais simples que posso criar.
fonte
xmlhttp.setRequestHeader('SOAPAction', 'http://myurl.com/action');
pouco antes dexmlhttp.send(sr)
corrigi-lo.Existem muitas peculiaridades na maneira como os navegadores lidam com XMLHttpRequest, esse código JS funcionará em todos os navegadores:
https://github.com/ilinsky/xmlhttprequest
Esse código JS converte XML em objetos JavaScript fáceis de usar:
http://www.terracoder.com/index.php/xml-objectifier
O código JS acima pode ser incluído na página para atender a seus requisitos de biblioteca externa.
Duas outras opções:
Cliente SOAP JavaScript:
http://www.guru4.net/articoli/javascript-soap-client/en/
Gere JavaScript a partir de um WSDL:
https://cwiki.apache.org/confluence/display/CXF20DOC/WSDL+to+Javascript
fonte
Isso não pode ser feito com JavaScript direto, a menos que o serviço da web esteja no mesmo domínio da sua página.Edit: Em 2008 e no IE <10, isso não pode ser feito com javascript direto, a menos que o serviço esteja no mesmo domínio da sua página.Se o serviço da web estiver em outro domínio [e você precisar oferecer suporte ao IE <10], será necessário usar uma página de proxy em seu próprio domínio que recuperará os resultados e os retornará para você. Se você não precisar do suporte antigo do IE, precisará adicionar o suporte CORS ao seu serviço. Em ambos os casos, você deve usar algo como a lib que timyates sugeriu, porque você não deseja analisar os resultados por conta própria.
Se o serviço da web estiver em seu próprio domínio, não use SOAP. Não há boas razões para fazê-lo. Se o serviço da web estiver em seu próprio domínio, modifique-o para que ele possa retornar o JSON e poupar o trabalho de lidar com todos os aborrecimentos que acompanham o SOAP.
A resposta curta é: não faça solicitações SOAP do javascript. Use um serviço da Web para solicitar dados de outro domínio e, se você fizer isso, analise os resultados no lado do servidor e retorne-os no formato js.
fonte
XMLHttpRequest
, provavelmente por meio de uma biblioteca como o jquery. Um cliente do nó usaria outra coisa. A maioria dos serviços da Web usa o REST como um guia para projetar suas APIs, mas há muitos bons padrões. A chave aqui é que os corpos de solicitação / resposta são JSON porque os clientes javascript (navegador / nó / qualquer outro local) entendem JSON nativamente.Você pode usar o plugin jquery.soap para fazer o trabalho por você.
Exemplo de uso do site:
fonte
Thomas:
O JSON é preferido para uso de front-end porque é javascript. Portanto, você não tem XML para lidar. SOAP é uma dor sem usar uma biblioteca por causa disso. Alguém mencionou o SOAPClient, que é uma boa biblioteca, começamos com ela no nosso projeto. No entanto, tinha algumas limitações e tivemos que reescrever grandes partes dele. Ele foi lançado como SOAPjs e oferece suporte à passagem de objetos complexos para o servidor e inclui alguns códigos de proxy de amostra para consumir serviços de outros domínios.
fonte
alguem ja tentou isso? https://github.com/doedje/jquery.soap
Parece muito fácil de implementar.
Exemplo:
vai resultar em
fonte
Hear é o melhor JavaScript com tutorial SOAP com exemplo.
http://www.codeproject.com/Articles/12816/JavaScript-SOAP-Client
fonte
Alguns ótimos exemplos (e um cliente SOAP JavaScript pronto!) Aqui: http://plugins.jquery.com/soap/
Verifique o leia-me e tome cuidado com a restrição de navegador da mesma origem.
fonte
Consuma facilmente serviços da Web SOAP com JavaScript -> Listagem B
Isso pode não atender a todos os seus requisitos, mas é um começo para responder a sua pergunta. ( Troquei XMLHttpRequest () por ActiveXObject ("MSXML2.XMLHTTP") ).
fonte
O exemplo mais simples consistiria em:
Redigindo mensagem SOAP XML semelhante a esta
POSTando a mensagem no URL do serviço da web usando XHR
Analisando a resposta XML SOAP do serviço da web semelhante a esta
Apresentando resultados ao usuário.
Mas é muito trabalhoso sem bibliotecas JavaScript externas.
fonte
fonte
Angularjs $ http wrap base em XMLHttpRequest . Contanto que no conteúdo do cabeçalho definido o seguinte código funcione.
Por exemplo:
fonte
A pergunta é 'Qual é o exemplo SOAP mais simples usando Javascript?'
Esta resposta é um exemplo no ambiente Node.js. , em vez de um navegador. (Vamos nomear o script soap-node.js) E usaremos o serviço da web SOAP público da Europa PMC como um exemplo para obter a lista de referência de um artigo.
Antes de executar o código, você precisa instalar dois pacotes:
Agora você pode executar o código:
E você verá a saída como abaixo:
fonte