使用ajax jquery使用soap webservice

时间:2016-07-26 05:33:11

标签: jquery soap

我正在尝试使用网络服务。我是webservices的新手。这里的问题是我没有得到任何回复而且代码只会产生错误并且根本不会输入成功代码:

<!DOCTYPE html>
<html>
<head>
<title>
My Web Service Test Code using Jquery
</title>
<script src="js/jquery-1.4.1.min.js" type="text/javascript"></script>
</head>
<body>
<div>
<ul>
<form id="form1" runat="server">
<li>
    <label>Member ID</label>
    <input id="member_id" type="text" />
    <input id="blnLoadMember" type="button" value="Get Details"    onclick="javascript:GetMember();" />

</li>
</form>
</ul>    
<div id="MemberDetails"></div>

</div>
<script type="text/javascript">
var soapMessage = '<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><HelloWorld xmlns="http://tempuri.org/" /></soap:Body></soap:Envelope>';

function GetMember() {
    $('input[type=button]').attr('disabled', true);
    $("#MemberDetails").html('');
    $("#MemberDetails").addClass("loading");
    $.ajax({

        url: "http://172.16.15.112:786/Members.asmx/HelloWorld",
        type: "POST",
        dataType: "xml",
        data: soapMessage,
        processData: false,
        contentType: "text/xml; charset=\"utf-8\"",

        success: function (response) {
            alert("success");
            alert(response);
            console.log(response);

           // $('#MemberDetails').html(JSON.stringify(response.d));

        },

        error: OnGetMemberError
    });
}

function OnGetMemberError(request, status, error) {
    alert(error);
    $("#MemberDetails").removeClass("loading");
    $("#MemberDetails").html(request.statusText);
    $('input[type=button]').attr('disabled', false);
}

</script>
</body>
</html>

任何帮助将不胜感激。

错误是:

  

&#34; TypeError:无法获取属性&#39; documentElement&#39;未定义或无效的参考&#34;

2 个答案:

答案 0 :(得分:0)

要在IE中发布XML,您应该添加元标记。

<meta http-equiv="X-UA-Compatible" content="IE=edge" />

下面是工作代码,数据类型应该是文本,内容类型应该是text / xml。试试这个,错误提醒将有助于追踪实际问题。

$.ajax({
    url: "http://172.16.15.112:786/Members.asmx/HelloWorld",
    data: '<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><HelloWorld xmlns="http://tempuri.org/" /></soap:Body></soap:Envelope>', 
    type: 'POST',
    contentType: "text/xml",
    dataType: "text",
    success : function (response) {
        alert("success");
        alert(response);},
    error : function (xhr, ajaxOptions, thrownError){  
        alert(xhr.status);          
        alert(thrownError);
    } 
}); 

对于所需的浏览器内容,请参阅question

答案 1 :(得分:0)

问题在于Web服务,它是通过在global.config文件中放置一些标头来解决的。