-1

我正在尝试发布网络服务。但我想获得响应值。我的代码如下所示:

 var xmlhttp = new XMLHttpRequest();
        xmlhttp.open('POST', 'http://www.w3schools.com/webservices/tempconvert.asmx',  true);

        // build SOAP request
        var sr =
            '<soapenv:Envelope' + ' ' +
                'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ' +
                'xmlns:api="http://127.0.0.1/Integrics/Enswitch/API" ' +
                'xmlns:xsd="http://www.w3.org/2001/XMLSchema" ' +
                'xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">' +
                '<soapenv:Body>' +
                    '<CelsiusToFahrenheit  xmlns="http://tempuri.org/">' +
                    '<Celsius>44</Celsius>' +
                    '</CelsiusToFahrenheit>'+
                '</soapenv:Body>' +
            '</soapenv:Envelope>';

        xmlhttp.onreadystatechange = function () {
            if (xmlhttp.readyState == 4) {
                if (xmlhttp.status == 200) {

                    alert('done use firebug to see response');
                }
            }
        }
        // Send the POST request
        xmlhttp.setRequestHeader('Content-Type', 'text/xml');
        xmlhttp.send(sr);

当我查看 firebug 时,我意识到 Web 服务器响应值为:

<?xml version="1.0" encoding="utf-8"?><soap:Envelope      xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><CelsiusToFahrenheitResponse xmlns="http://tempuri.org/"><CelsiusToFahrenheitResult>111.2</CelsiusToFahrenheitResult>   </CelsiusToFahrenheitResponse></soap:Body></soap:Envelope> 

但我不知道如何获得 111.2 的值?

4

1 回答 1

1

您正在从您的 ajax 调用中获得一个 xml 响应。做对了,你需要解析xml代码。

您可以使用 jQuery 轻松完成:

var r = $(this.responseText).find("CelsiusToFahrenheitResult").text();
于 2013-07-29T10:28:24.197 回答