Saltar al contenido

Cómo llamar a SOAP WS desde Javascript / jQuery

Solución:

No puede enviar solicitudes AJAX entre dominios debido a la misma restricción de política de origen que está integrada en los navegadores. Para que esto funcione, su página HTML que contiene el código jQuery debe estar alojada en el mismo dominio que el Servicio Web (http://192.168.1.5/ws/MyWS/).

Hay soluciones que implican el uso de JSONP en el servidor, pero como su servicio web es SOAP, esto no puede funcionar.

La única forma confiable de hacer que esto funcione si no puede mover su javascript en el mismo dominio que el servicio web es construir un script del lado del servidor que se alojará en el mismo dominio que el código javascript y que actuará como un puente entre el 2 dominios. Por lo tanto, enviaría una solicitud AJAX a la secuencia de comandos del lado del servidor que, a su vez, invocará el servicio web remoto y devolverá el resultado.

¿Qué tal esto? https://github.com/doedje/jquery.soap

Parece bastante fácil. Quizás te ayude.

Ejemplo:

$.soap({
url: 'http://my.server.com/soapservices/',
method: 'helloWorld',

data: {
    name: 'Remy Blom',
    msg: 'Hi!'
},

success: function (soapResponse) {
    // do stuff with soapResponse
    // if you want to have the response as JSON use soapResponse.toJSON();
    // or soapResponse.toString() to get XML string
    // or soapResponse.toXML() to get XML DOM
},
error: function (SOAPResponse) {
    // show error
}
});

resultará en

<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <helloWorld>
        <name>Remy Blom</name>
        <msg>Hi!</msg>
    </helloWorld>
  </soap:Body>
</soap:Envelope>
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *