i want to call a web service using javascript. i have a form where i give some parameters (int) and want to get the result how can do it using javascript?
here are the WSDL files
<definitions xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://lapack.sws4hpsc.uth/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://lapack.sws4hpsc.uth/" name="DgesvSampleWsService"> <ns1:Policy xmlns:ns1="http://www.w3.org/ns/ws-policy" wsu:Id="DgesvSampleWsPortBinding_MTOM_Policy"> <ns1:ExactlyOne> <ns1:All> <ns2:OptimizedMimeSerialization xmlns:ns2="http://schemas.xmlsoap.org/ws/2004/09/policy/optimizedmimeserialization" ns1:Optional="true"/> </ns1:All> </ns1:ExactlyOne> </ns1:Policy> <types> <xsd:schema> <xsd:import namespace="http://lapack.sws4hpsc.uth/" schemaLocation="http://83.212.96.238:8080/DgesvSampleWs/DgesvSampleWsService?xsd=1"/> </xsd:schema> </types> <message name="_dgesv"> <part name="parameters" element="tns:_dgesv"/> </message> <message name="_dgesvResponse"> <part name="parameters" element="tns:_dgesvResponse"/> </message> <portType name="DgesvSampleWs"> <operation name="_dgesv"> <input message="tns:_dgesv"/> <output message="tns:_dgesvResponse"/> </operation> </portType> <binding name="DgesvSampleWsPortBinding" type="tns:DgesvSampleWs"> <ns3:PolicyReference xmlns:ns3="http://www.w3.org/ns/ws-policy" URI="#DgesvSampleWsPortBinding_MTOM_Policy"/> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/> <operation name="_dgesv"> <soap:operation soapAction=""/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding> <service name="DgesvSampleWsService"> <port name="DgesvSampleWsPort" binding="tns:DgesvSampleWsPortBinding"> <soap:address location="http://83.212.96.238:8080/DgesvSampleWs/DgesvSampleWsService"/> </port> </service> </definitions>
and the second one
<definitions xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://lapack.sws4hpsc.uth/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://lapack.sws4hpsc.uth/" name="DgtsvSampleWsService"> <ns1:Policy xmlns:ns1="http://www.w3.org/ns/ws-policy" wsu:Id="DgtsvSampleWsPortBinding_MTOM_Policy"> <ns1:ExactlyOne> <ns1:All> <ns2:OptimizedMimeSerialization xmlns:ns2="http://schemas.xmlsoap.org/ws/2004/09/policy/optimizedmimeserialization" ns1:Optional="true"/> </ns1:All> </ns1:ExactlyOne> </ns1:Policy> <types> <xsd:schema> <xsd:import namespace="http://lapack.sws4hpsc.uth/" schemaLocation="http://83.212.96.238:8080/DgtsvSampleWs/DgtsvSampleWsService?xsd=1"/> </xsd:schema> </types> <message name="_dgtsv"> <part name="parameters" element="tns:_dgtsv"/> </message> <message name="_dgtsvResponse"> <part name="parameters" element="tns:_dgtsvResponse"/> </message> <portType name="DgtsvSampleWs"> <operation name="_dgtsv"> <input message="tns:_dgtsv"/> <output message="tns:_dgtsvResponse"/> </operation> </portType> <binding name="DgtsvSampleWsPortBinding" type="tns:DgtsvSampleWs"> <ns3:PolicyReference xmlns:ns3="http://www.w3.org/ns/ws-policy" URI="#DgtsvSampleWsPortBinding_MTOM_Policy"/> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/> <operation name="_dgtsv"> <soap:operation soapAction=""/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding> <service name="DgtsvSampleWsService"> <port name="DgtsvSampleWsPort" binding="tns:DgtsvSampleWsPortBinding"> <soap:address location="http://83.212.96.238:8080/DgtsvSampleWs/DgtsvSampleWsService"/> </port> </service> </definitions>
3 Answers
Answers 1
Create a SOAP request and invoke the caller. ref: Simplest SOAP example
Get the response and parse the XML. ref: Parse XML using JavaScript
Answers 2
here you go, using jquery:
$.ajax({ type: 'POST', url: '/your-web-service-path.asmx/your-method-name', data: {yourparam: 1} dataType: 'json', contentType: 'application/json; charset=utf-8', success: function(r){}, error: function(e){} });
Answers 3
Here a possible approach, assuming you put wsdl into a file request.wsdl
and assuming that the remote server is accessible and have Access-Control-Allow-Origin: *
header
//wsdl request var client = new XMLHttpRequest(); client.open('GET', 'request.wsdl'); client.onreadystatechange = function () { var request = client.responseText;//here the wsdl //SOAP request var client2 = new XMLHttpRequest(); client2.open('POST', 'http://83.212.96.238:8080/DgesvSampleWs/DgesvSampleWsService', true); client2.onreadystatechange = function () { if (client2.readyState == 4) { if (client2.status == 200) { console.log(client.responseText);//here the response } } } client2.setRequestHeader('Content-Type', 'text/xml'); client2.send(request); } client.send();
The idea is performing and ajax to call wsdl definitions and in it's callback, perform another ajax that call that you want to call. This domains http://83.212.96.238:808
it's not giving me response but I think the approach is valid.
0 comments:
Post a Comment