javascript - 如何使用 JavaScript 创建带有 SOAP 消息的请求?

标签 javascript web-services soap

我有一个 Web 服务,我想调用一些方法。为此我创建:

<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>
<script type="text/javascript">
    $(document).ready(function () {
        $("#btnCallWebService").click(function (event) {
            var wsUrl = "http://localhost:8080/services/StockQuoteService/";

            var soapRequest =
'<?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/" >' +

 '<soap:Body xmlns:m="http://sample/">'+
 ' <m:getPrice>'+
 '    <m:symbol>IBM</m:symbol>'+
 ' </m:getPrice>'+
 '</soap:Body>'+
'</soap: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("HelloResult").text());
    }

    function processError(data, status, req) {
        alert(req.responseText + " " + status);
    }  

</script>
</head>
<body>
    <input id="btnCallWebService" value="Call web service" type="button" />
    <div id="response" />
</body>
</html>

但是每次我都会遇到错误 parseerror 并显示“无法读取 null 的属性‘documentElement’”。但是当我从 Google Chrome 应用程序“Postman”调用我的服务时,我没有错误。如何使用 Java 脚本创建对我的 Web 服务的 SOAP 请求?

最佳答案

这仅适用于 IE。

<script language="JavaScript">
var request = new XMLHttpRequest();
request.open('POST', 'http://www.webserviceX.NET//CurrencyConvertor.asmx',true);
var m_request = '<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/"><soap:Body><ConversionRate xmlns="http://www.webserviceX.NET/"><FromCurrency>INR</FromCurrency><ToCurrency>USD</ToCurrency>    </ConversionRate>  </soap:Body></soap:Envelope>'
request.setRequestHeader('Content-Type', 'text/xml');
request.send(m_request);
request.onreadystatechange = function() {
    if (request.readyState == 4 && request.status == 200) {
        alert("VALUE" + request.responseText);
    }
}
</script>

关于javascript - 如何使用 JavaScript 创建带有 SOAP 消息的请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28536527/

相关文章:

maven - 无法使用 Maven 从 XSD 文件生成源文件?

javascript - 如何导出 Node 中的类?

javascript - 如何在保存另一个文档之前等待循环完成?

javascript - 如何在Jquery中检索表单的所有选择的所有选项?

javascript - 在浏览器中存储多个图像的base64图像数据

c# - 如何转换使用行为的 WebService 调用?

c# - Web 服务实例化对象 C#.NET

java - 如果底层数据可能发生变化,如何管理超媒体驱动的 RESTful API 的分页结果?

c# - 在C#soap Web服务的URL中传递参数

java - SOAP 服务中的命名空间