加入收藏 | 设为首页 | 会员中心 | 我要投稿 温州站长网 (https://www.0577zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Windows > 正文

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

发布时间:2016-11-25 08:51:40 所属栏目: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程序设计有所帮助。

(编辑:温州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读