2017-03-17 71 views
0

我想消费sumtotal的学习管理系统soap basedweb服务并使用下面的代码来使用它。但我无法知道如何捕捉来自JavaScript的服务响应,因为我在这方面没有太多工作。请帮助。使用javascript从总计认证Web服务获得安全上下文令牌

<script language="JavaScript" type="text/javascript"> 

          function getData() 
          { 


    var xmlhttp = new XMLHttpRequest(); 
     xmlhttp.open('GET',  'https://Testsoapservice.com/Services/authentication.asmx?op=Login', true); 


      // build SOAP request 
      var sr = '<?xml version="1.0" encoding="utf-8"?>' + 
       '<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" '+ 
'xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">'+ 
        '<soapenv:Body>' + 
         ' <Login xmlns="http://www.testsoapservice.com/Authentication/">'+ 
         '<credentials>'+ 
'<Username>xxx</Username>'+ 
          '<Passcode>xxxx</Passcode>'+        
         '</credentials>'+ 
         '</Login>'+ 
        '</soapenv:Body>' + 
       '</soapenv:Envelope>'; 

      xmlhttp.onreadystatechange = function() { 


       if (xmlhttp.readyState == 4) {  

        if (xmlhttp.status == 200) { 
     // How to get the user token here as soap response. I would like to use the token to consume subsequent services 
        } 
       } 
      } 
      // Send the POST request 
      xmlhttp.setRequestHeader('Content-Type', 'text/xml'); 
      xmlhttp.send(sr); 


         } 
    </script> 

回答

0

这里是答案:很简单,但我尝试不同的东西。这工作。

<script type="text/javascript"> 
      $(document).ready(function() { 
      $("#btnCallWebService").click(function (event) { 
      var wsUrl = 
"https://Testsoapservice.com/Services/authentication.asmx"; 

     xmlhttp.open('GET',  
'https://Testsoapservice.com/Services/authentication.asmx?op=Login', true); 


     // build SOAP request 
     var sr = '<?xml version="1.0" encoding="utf-8"?>' + 
'<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" '+ 
'xmlns:xsd="http://www.w3.org/2001/XMLSchema" '+ 
'"xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">'+ 
       '<soapenv:Body>' + 
        ' <Login 
    xmlns="http://www.testsoapservice.com/Authentication/">'+ 
        '<credentials>'+ 
'<Username>xxx</Username>'+ 
         '<Passcode>xxxx</Passcode>'+        
        '</credentials>'+ 
        '</Login>'+ 
       '</soapenv:Body>' + 
      '</soapenv:Envelope>'; 
      $.ajax({ 
       type: "POST", 
       url: wsUrl, 
       contentType: "text/xml", 
       dataType: "xml", 
       data: soapRequest, 
       success: processSuccess, 
       error: processError 
      }); 

     }); 
    }); 

    function processSuccess(data, status, req) 
    { 

     if (status == "success") 
      // $("#response").text($(req.responseXML).find("Value").text()); 
      var uToken=$(req.responseXML).find("Value").text(); 

}