Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript和web服务WSDL_Javascript_Wsdl - Fatal编程技术网

javascript和web服务WSDL

javascript和web服务WSDL,javascript,wsdl,Javascript,Wsdl,我想使用javascript调用web服务。我有一个表单,其中我给出了一些参数(int),并希望得到结果。如何使用javascript实现 下面是WSDL文件 <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:tn

我想使用javascript调用web服务。我有一个表单,其中我给出了一些参数(int),并希望得到结果。如何使用javascript实现

下面是WSDL文件

<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>


第二个呢

<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>

  • 创建SOAP请求并调用调用方。 ref:

  • 获取响应并解析XML。 ref:


  • 这里是一种可能的方法,假设您将wsdl放入文件
    request.wsdl
    ,并假设远程服务器是可访问的,并且具有
    访问控制允许源:

    //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();
    
    其思想是执行和ajax来调用wsdl定义,并在其回调中执行另一个您想要调用的ajax调用。此域
    http://83.212.96.238:808
    它没有给我回应,但我认为这种方法是有效的