I think this Post can help you. But most of web servers allows you to invoke webservices using plain HTTP Post (without SOAP format in the body request) if the request doesn't need SOAP headers or other weird things.
An example in .NET and plain javaScript:
.NET web service
<System.Web.Services.WebService(Namespace:="http://JuntaEx/Agricultura/SegurInfo/GestorFirmaExterno/")> _
<System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<ToolboxItem(False)> _
Public Class GestorFirmaExterno
Inherits System.Web.Services.WebService
<WebMethod(Description:="Retorna los documentos originales asociados a un identificador de firma pasado como parámetro.")> _
Public Function ObtenerDocumentoOriginal(ByVal idFirma As String) As DocumentoED()
//code
End Function
End Class
web.config:
<webServices>
<protocols>
<add name="HttpSoap"/>
<add name="HttpPost"/> <!-- Allows plain HTTP Post -->
<add name="HttpSoap12"/>
<!-- Documentation enables the documentation/test pages -->
<add name="Documentation"/>
</protocols>
</webServices>
JavaScript request:
function crearRequest(url) {
if (window.XMLHttpRequest) {
peticion_http = new XMLHttpRequest();
}
else if (window.ActiveXObject) {
peticion_http = new ActiveXObject('Microsoft.XMLHTTP');
}
peticion_http.open('POST', url, true); //sync
peticion_http.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
return peticion_http;
}
peticion_http = crearRequest('http://localhost/wspuenteFirma/serviciopuente.asmx/ObtenerDocumentoOriginal');
peticion_http.onreadystatechange = obtenerDocHandler;
var query_string = 'IdFirma=' + encodeURIComponent(docId);
peticion_http.setRequestHeader('Content-Length', query_string.length);
peticion_http.send(query_string);
You send this request to the server:
POST /wsGestorFirmaExterno/GestorFirmaExterno.asmx/ObtenerDocumentoOriginal HTTP/1.1
Host: localhost
Content-Type: application/x-www-form-urlencoded
Content-Length: length
idFirma=string
and recive this response from the server:
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<ArrayOfDocumentoED xmlns="http://JuntaEx/Agricultura/SegurInfo/GestorFirmaExterno/">
<DocumentoED>
<hash>string</hash>
</DocumentoED>
<DocumentoED>
<hash>string</hash>
</DocumentoED>
</ArrayOfDocumentoED>
Parse it with javascript to obtain the info you need.
PS: You can configure the server and the browser request to send and recive JSON data instead of XML.
I hope it's helps.