¿Cuál es el ejemplo SOAP más simple con Javascript?
Para ser lo más útil posible, la respuesta debería:
- Ser funcional (en otras palabras, realmente funciona)
- Enviar al menos un parámetro que se pueda establecer en otra parte del código
- Procese al menos un valor de resultado que pueda leerse en otra parte del código
- Trabaja con la mayoría de las versiones modernas de navegador
- Sea lo más claro y breve posible, sin usar una biblioteca externa
javascript
soap
Thomas Bratt
fuente
fuente
Respuestas:
Este es el cliente SOAP JavaScript más simple que puedo crear.
fuente
xmlhttp.setRequestHeader('SOAPAction', 'http://myurl.com/action');
justo antes dexmlhttp.send(sr)
arreglarlo.Hay muchas peculiaridades en la forma en que los navegadores manejan XMLHttpRequest, este código JS funcionará en todos los navegadores:
https://github.com/ilinsky/xmlhttprequest
Este código JS convierte XML en objetos JavaScript fáciles de usar:
http://www.terracoder.com/index.php/xml-objectifier
El código JS anterior se puede incluir en la página para cumplir con su requisito de biblioteca externa.
Otras dos opciones:
Cliente SOAP JavaScript:
http://www.guru4.net/articoli/javascript-soap-client/en/
Genere JavaScript a partir de un WSDL:
https://cwiki.apache.org/confluence/display/CXF20DOC/WSDL+to+Javascript
fuente
Esto no se puede hacer con JavaScript directo a menos que el servicio web esté en el mismo dominio que su página.Editar: en 2008 y en IE <10, esto no se puede hacer con JavaScript directo a menos que el servicio esté en el mismo dominio que su página.Si el servicio web está en otro dominio [y debe admitir IE <10], deberá utilizar una página proxy en su propio dominio que recuperará los resultados y se los devolverá. Si no necesita soporte antiguo de IE, entonces necesita agregar soporte CORS a su servicio. En cualquier caso, debe usar algo como la lib que sugiere el tiempo debido a que no desea analizar los resultados usted mismo.
Si el servicio web está en su propio dominio, no use SOAP. No hay una buena razón para hacerlo. Si el servicio web está en su propio dominio, modifíquelo para que pueda devolver JSON y ahorrarse la molestia de lidiar con todas las molestias que vienen con SOAP.
La respuesta corta es: No haga solicitudes SOAP desde javascript. Utilice un servicio web para solicitar datos de otro dominio, y si lo hace, analice los resultados en el lado del servidor y devuélvalos en un formato amigable js.
fuente
XMLHttpRequest
, probablemente a través de una biblioteca como jquery. Un cliente de nodo usaría otra cosa. La mayoría de los servicios web usan REST como guía para diseñar su API, pero hay muchos patrones buenos. La clave aquí es que los cuerpos de solicitud / respuesta son JSON porque los clientes javascript (navegador / nodo / donde sea) entienden JSON de forma nativa.Puede usar el complemento jquery.soap para hacer el trabajo por usted.
Ejemplo de uso del sitio:
fuente
Thomas
Se prefiere JSON para el uso frontal porque es javascript. Por lo tanto, no tiene XML para tratar. SOAP es un dolor sin usar una biblioteca debido a esto. Alguien mencionó SOAPClient, que es una buena biblioteca, comenzamos con ella para nuestro proyecto. Sin embargo, tenía algunas limitaciones y tuvimos que reescribir grandes partes de él. Se lanzó como SOAPjs y admite el paso de objetos complejos al servidor, e incluye algunos códigos proxy de muestra para consumir servicios de otros dominios.
fuente
¿Alguien ha probado esto? https://github.com/doedje/jquery.soap
Parece muy fácil de implementar.
Ejemplo:
resultará en
fuente
Escuchar es el mejor tutorial de JavaScript con SOAP con ejemplo.
http://www.codeproject.com/Articles/12816/JavaScript-SOAP-Client
fuente
Algunos buenos ejemplos (¡y un cliente SOAP JavaScript listo!) Aquí: http://plugins.jquery.com/soap/
Verifique el archivo Léame y tenga cuidado con la restricción del navegador del mismo origen.
fuente
Consuma fácilmente los servicios web SOAP con JavaScript -> Listado B
Es posible que esto no cumpla con todos sus requisitos, pero es un comienzo para responder su pregunta. ( Cambié XMLHttpRequest () por ActiveXObject ("MSXML2.XMLHTTP") ).
fuente
El ejemplo más simple consistiría en:
Redactar un mensaje XML SOAP similar a este
PUBLICANDO un mensaje en la URL del servicio web usando XHR
Analizando la respuesta SOAP XML del servicio web similar a esta
Presentación de resultados al usuario.
Pero es una gran molestia sin bibliotecas externas de JavaScript.
fuente
fuente
Angularjs $ http wrap base en XMLHttpRequest . Siempre y cuando se establezca el contenido del encabezado, lo hará el siguiente código.
Por ejemplo:
fuente
La pregunta es '¿Cuál es el ejemplo SOAP más simple que usa Javascript?'
Esta respuesta es de un ejemplo en el entorno Node.js , en lugar de un navegador. (Pongamos el nombre del script soap-node.js) Y utilizaremos el servicio web público SOAP de Europe PMC como ejemplo para obtener la lista de referencias de un artículo.
Antes de ejecutar el código, debe instalar dos paquetes:
Ahora puedes ejecutar el código:
Y verá la salida de la siguiente manera:
fuente