js调用webservice构造SOAP进行身份验证
发布时间:2016-11-24 16:28:52 所属栏目:Windows 来源:站长网
导读:本文实例为大家分享了js调用webservice构造SOAP进行身份验证的相关内容,注释清除,供大家参考,具体内容如下 lt;htmlgt;lt;headgt; lt;titlegt;无标题页lt;/titlegt; lt;script language="javascript" type="text/javascript"gt;// lt;!CDATA[ //defineva
本文实例为大家分享了js调用webservice构造SOAP进行身份验证的相关内容,注释清除,供大家参考,具体内容如下 lt;htmlgt; lt;headgt; lt;titlegt;无标题页lt;/titlegt; lt;script language="javascript" type="text/javascript"gt; // lt;!CDATA[ //define var 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="lt;brgt;找不到请求的服务器资源!"; } } else if(xmlhttp.readyState==0) { h.innerHTML="lt;brgt;未初始化!"; } else if(xmlhttp.readyState==1) { h.innerHTML="lt;brgt;正在加载……!"; } else if(xmlhttp.readyState==2) { h.innerHTML="lt;brgt;已经加载完成!"; } else if(xmlhttp.readyState==3) { h.innerHTML="lt;brgt;正在和服务器交互"; } else { h.innerHTML=xmlhttp.responseXML; } } //Get Request Data's length function getlen(str) { var bytesCount=0; for (var i = 0; i lt; 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 = 'lt;#63;xml version="1.0" encoding="utf-8"#63;gt;'; data = data + 'lt;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/"gt;'; //加了这段可以实现soap头 //UserName ,Pwd这是我的SOAP验证形式,需替换 data = data + "lt;soap:Headergt;" data = data + 'lt;UserSoapHeader xmlns="http://tempuri.org/"gt;' data = data + "lt;UserNamegt;adminlt;/UserNamegt;" data = data + "lt;Pwdgt;faaaalt;/Pwdgt;" data = data + "lt;/UserSoapHeadergt;" data = data + "lt;/soap:Headergt;" data = data + 'lt;soap:Bodygt;'; data = data + 'lt;'+method+' xmlns="'+_Namespace+'"gt;'; for(var i=0;ilt;variable.length;i++) { data = data + 'lt;'+variable[i]+'gt;'+value[i]+'lt;/'+variable[i]+'gt;'; } data = data + 'lt;/'+method+'gt;'; data = data + 'lt;/soap:Bodygt;'; data = data + 'lt;/soap:Envelopegt;'; 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(); } // ]]gt; lt;/scriptgt; lt;/headgt; lt;bodygt; lt;label id='Label1'gt;sslt;/labelgt; lt;/bodygt; lt;/htmlgt; 以上就是本文的全部内容,希望对大家学习javascript程序设计有所帮助。 (编辑:PHP编程网 - 黄冈站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐
热点阅读