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



我正在尝试使用Sumtotal的基于SOP的学习管理系统Web服务,并使用以下代码来使用它。但是我不知道如何从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>

答案如下: 很简单,但我正在尝试不同的东西。 这行得通。

 <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();

}

最新更新