js调用webservice构造SOAP进行身份验证
来源: 阅读:1342 次 日期:2016-07-06 14:37:20
温馨提示: 小编为您整理了“js调用webservice构造SOAP进行身份验证”,方便广大网友查阅!

这篇文章主要介绍了js调用webservice构造SOAP进行身份验证的相关资料,需要的朋友可以参考下

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

<html>

<head>

 <title>无标题页</title>

 <script language="javascript" type="text/javascript">

// <!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="<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 length

function 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程序设计有所帮助。

更多信息请查看网络编程
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:hfpxwx
咨询QQ:526150442(9:00—18:00)版权所有:
云南网警报警专用图标
Baidu
map