js调用webservice构造SOAP进行身份验证
本文实例为大家分享了js调用webservice构造SOAP进行身份验证的相关内容,注释清除,供大家参考,具体内容如下
<html> <head> <title>无标题页</title> <scriptlanguage="javascript"type="text/javascript"> //<!CDATA[ //define varxmlhttp; varvalue=newArray(); varvariable=newArray(); //ShowResponseMSG. functionhandleStateChange() { varh=document.getElementById("Label1"); if(xmlhttp.readyState==4) { if(xmlhttp.status==200) { alert(xmlhttp.responseText); h.innerHTML=xmlhttp.responseText; //h.innerHTML=xmlhttp.responseXML; } elseif(xmlhttp.status==404) { h.innerHTML="<br>找不到请求的服务器资源!"; } } elseif(xmlhttp.readyState==0) { h.innerHTML="<br>未初始化!"; } elseif(xmlhttp.readyState==1) { h.innerHTML="<br>正在加载……!"; } elseif(xmlhttp.readyState==2) { h.innerHTML="<br>已经加载完成!"; } elseif(xmlhttp.readyState==3) { h.innerHTML="<br>正在和服务器交互"; } else { h.innerHTML=xmlhttp.responseXML; } } //GetRequestData'slength functiongetlen(str) { varbytesCount=0; for(vari=0;i<str.length;i++) { varc=str.charAt(i); if(/^[u0000-u00ff]$/.test(c))//匹配双字节 { bytesCount+=1; } else { bytesCount+=2; } } returnbytesCount; } //CreateXMLHttpRequestObject functioncreateXMLHttpRequest() { if(window.ActiveXObject) { xmlhttp=newActiveXObject("Microsoft.XMLHTTP"); } elseif(window.XMLHttpRequst) { xmlhttp=newXMLHttpRequest(); } } //sendRequestByHTTPPOST //实际上这段代码就是用JS构造一个字符串,而这个字符串就是通过浏览器查看WEBSERVICE时方法时出现的那段 functionRequestByPost(method,variable,value,url,_Namespace) { createXMLHttpRequest(); vardata; data='<?xmlversion="1.0"encoding="utf-8"?>'; data=data+'<soap:Envelopexmlns: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头 //UserName,Pwd这是我的SOAP验证形式,需替换 data=data+"<soap:Header>" data=data+'<UserSoapHeaderxmlns="http://tempuri.org/">' data=data+"<UserName>admin</UserName>" data=data+"<Pwd>faaaa</Pwd>" data=data+"</UserSoapHeader>" data=data+"</soap:Header>" data=data+'<soap:Body>'; data=data+'<'+method+'xmlns="'+_Namespace+'">'; for(vari=0;i<variable.length;i++) { data=data+'<'+variable[i]+'>'+value[i]+'</'+variable[i]+'>'; } data=data+'</'+method+'>'; data=data+'</soap:Body>'; data=data+'</soap:Envelope>'; xmlhttp.onreadystatechange=handleStateChange; xmlhttp.Open("POST",url,true); xmlhttp.SetRequestHeader("Content-Type","text/xml;charset=utf-8"); //xmlhttp.SetRequestHeader("Content-Length",getlen(data)); xmlhttp.SetRequestHeader("SOAPAction",_Namespace+method); xmlhttp.Send(data); alert(data); } //WeatherReportTest: functionButton2_onclick(){ //方法名,参数名,参数值,服务URL,服务所使用命名空间 RequestByPost("HelloWorld",[],[],"http://localhost:13267/SERVICES/WebService.asmx","http://tempuri.org/"); } window.onload=function(){ Button2_onclick(); } //]]> </script> </head> <body> <labelid='Label1'>ss</label> </body> </html>
以上就是本文的全部内容,希望对大家学习javascript程序设计有所帮助。