js调用webservice构造SOAP进行身份验证

时间:2021-05-26

本文实例为大家分享了js调用webservice构造SOAP进行身份验证的相关内容,注释清除,供大家参考,具体内容如下

<html><head> <title>无标题页</title> <script language="javascript" type="text/javascript">// <!CDATA[  //definevar xmlhttp;var value=new Array();var variable=new Array();  //Show Response MSG.function handleStateChange(){  var h=document.getElementById("Label1");  if(xmlhttp.readyState==4)  {    if(xmlhttp.status==200)    {      alert(xmlhttp.responseText);      h.innerHTML=xmlhttp.responseText;      //h.innerHTML=xmlhttp.responseXML;    }    else if(xmlhttp.status==404)    {      h.innerHTML="<br>找不到请求的服务器资源!";    }  }  else if(xmlhttp.readyState==0)  {    h.innerHTML="<br>未初始化!";  }  else if(xmlhttp.readyState==1)  {    h.innerHTML="<br>正在加载……!";  }  else if(xmlhttp.readyState==2)  {    h.innerHTML="<br>已经加载完成!";  }  else if(xmlhttp.readyState==3)  {    h.innerHTML="<br>正在和服务器交互";  }  else  {    h.innerHTML=xmlhttp.responseXML;  }  }  //Get Request Data's lengthfunction getlen(str){ var bytesCount=0; for (var i = 0; i < str.length; i++) { var c = str.charAt(i); if (/^[u0000-u00ff]$/.test(c))  //匹配双字节    { bytesCount += 1; } else { bytesCount += 2; } } return bytesCount;}   //Create XMLHttpRequest Object function createXMLHttpRequest(){    if(window.ActiveXObject)  {    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");  }  else if(window.XMLHttpRequst)  {    xmlhttp=new XMLHttpRequest();  }}   //send Request By HTTP POST//实际上这段代码就是用JS构造一个字符串,而这个字符串就是通过浏览器查看WEBSERVICE时方法时出现的那段function RequestByPost(method,variable,value,url,_Namespace){ createXMLHttpRequest(); var data; data = '<?xml version="1.0" encoding="utf-8"?>'; data = 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头 //UserName ,Pwd这是我的SOAP验证形式,需替换 data = data + "<soap:Header>" data = data + '<UserSoapHeader xmlns="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(var i=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);}   //WeatherReport Test: function Button2_onclick() { //方法名,参数名,参数值,服务URL,服务所使用命名空间 RequestByPost("HelloWorld",[],[],"http://localhost:13267/SERVICES/WebService.asmx","http://tempuri.org/"); }    window.onload = function(){   Button2_onclick();  }// ]]> </script></head><body> <label id='Label1'>ss</label></body></html>

以上就是本文的全部内容,希望对大家学习javascript程序设计有所帮助。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章