使用javascript从sumtotal身份验证Web服务获取安全上下文令牌

时间:2017-03-17 18:00:37

标签: javascript web-services security soap token

我正在尝试使用sumtotal的学习管理系统soap basedweb服务,并使用下面的代码来使用它。但我不知道如何从javascript捕获服务的响应,因为我在这个领域没有多少工作。请帮忙。

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

1 个答案:

答案 0 :(得分: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();

}