jquery.Ajax soap方式调用webservice

来源:互联网 发布:苏州网络推广 编辑:程序博客网 时间:2024/05/24 06:36

首先写出soap报文

var soapdata = '<?xml version="1.0" encoding="gbk"?>';

soapdata = soapdata + '<soap:Envelope xmlns:q0="http://ecifWebservice" 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/">'; soapdata = soapdata + ' <soap:Body>'; soapdata = soapdata + ' <q0:service>'; soapdata = soapdata + ' <q0:info>&lt;?xml version="1.0" encoding="GBK" standalone="yes"?&gt;&lt;PACKAGE VERSION="1.0" TYPE="REQUEST"&gt;&lt;HEAD&gt;&lt;REQUESTTYPE&gt;B0110&lt;/REQUESTTYPE&gt;&lt;/HEAD&gt;&lt;BODY&gt; &lt;MOBILE&gt;';soapdata = soapdata + '13333333333';soapdata = soapdata + '</MOBILE> </BODY></PACKAGE></q0:info>'; soapdata = soapdata + ' </q0:service>'; soapdata = soapdata + ' </soap:Body>'; soapdata = soapdata + ' </soap:Envelope>';

soap报文根据wsdl来编写,各个接口肯定是不一样的

用 jquery的 ajax方法进行调用

url 为接口地址

data为soap报文

header 中设置 SOAPAction 值为 wsdl中的 targetNamespace

$.ajax({

type:"POST",url:"http://XX.XX.XX.XX/webservice/services/service",data:soapdata,beforeSend:function(request){request.setRequestHeader ("Content-Type","text/xml; charset=gbk"); request.setRequestHeader ("SOAPAction","http://ecifWebservice/service"); },success:function(result){$("#soap").text("调用接口成功"+result.documentElement.lastChild.childNodes[0].childNodes[0].lastChild.nodeValue);var ecifdoc = $(result.documentElement.lastChild.childNodes[0].childNodes[0].lastChild.nodeValue);alert(ecifdoc.find("CUSTOMERNAME").eq(0).text()+ecifdoc.find("COMCODE").eq(0).text());},error:function(request,errorInfo){$("#soap").text("调用接口失败");//alert("errorInfo = "+errorInfo);}});

原创粉丝点击