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


Posted in Javascript onApril 27, 2016

本文实例为大家分享了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程序设计有所帮助。

Javascript 相关文章推荐
麻雀虽小五脏俱全 Dojo自定义控件应用
Sep 04 Javascript
用显卡加速,轻松把笔记本打造成取暖器的办法!
Apr 17 Javascript
一个CSS+jQuery实现的放大缩小动画效果
Feb 19 Javascript
我的Node.js学习之路(二)NPM模块管理
Jul 06 Javascript
jQuery中使用animate自定义动画的方法
May 29 Javascript
BootStrap 超链接变按钮的实现方法
Sep 25 Javascript
vue2.0+webpack环境的构造过程
Nov 08 Javascript
jQuery实现的checkbox级联选择下拉菜单效果示例
Dec 26 Javascript
详解用vue.js和laravel实现微信授权登陆
Jun 23 Javascript
vue一个页面实现音乐播放器的示例
Feb 06 Javascript
基于Vue实现关键词实时搜索高亮显示关键词
Jul 21 Javascript
vue+Element-ui前端实现分页效果
Nov 15 Javascript
javascript实现延时显示提示框特效代码
Apr 27 #Javascript
JS延时器提示框的应用实例代码解析
Apr 27 #Javascript
基于JS实现Android,iOS一个手势动画效果
Apr 27 #Javascript
requireJS使用指南
Apr 27 #Javascript
vue,angular,avalon这三种MVVM框架优缺点
Apr 27 #Javascript
浏览器兼容的JS写法总结
Apr 27 #Javascript
Vue.js基础知识汇总
Apr 27 #Javascript
You might like
phplock(php进程锁) v1.0 beta1
2009/11/24 PHP
PHP实现多条件查询实例代码
2010/07/17 PHP
php+mysql大量用户登录解决方案分析
2014/12/29 PHP
php开发微信支付获取用户地址
2015/10/04 PHP
php多文件打包下载的实例代码
2017/07/12 PHP
laravel-admin 实现给grid的列添加行数序号的方法
2019/10/08 PHP
php把文件设置为插件的技巧方法
2020/02/03 PHP
thinkphp框架实现路由重定义简化url访问地址的方法分析
2020/04/04 PHP
js弹窗代码 可以指定弹出间隔
2010/07/03 Javascript
jquery中ajax调用json数据的使用说明
2011/03/17 Javascript
Windows8下搭建Node.js开发环境教程
2014/09/03 Javascript
JavaScript常用验证函数实例汇总
2014/11/25 Javascript
jQuery EasyUI datagrid实现本地分页的方法
2015/02/13 Javascript
Three.js学习之网格
2016/08/10 Javascript
jQuery基于xml格式数据实现模糊查询及分页功能的方法
2016/12/25 Javascript
BootStrap Tooltip插件源码解析
2016/12/27 Javascript
JavaScript中利用for循环遍历数组
2017/01/15 Javascript
jQuery插件artDialog.js使用与关闭方法示例
2017/10/09 jQuery
Node.js使用supervisor进行开发中调试的方法
2019/03/26 Javascript
vue分页器组件编写方法详解
2019/06/28 Javascript
layer实现弹出层自动调节位置
2019/09/05 Javascript
微信小程序全局变量的设置、使用、修改过程解析
2019/09/24 Javascript
vue-cli设置css不生效的解决方法
2020/02/07 Javascript
JS PHP字符串截取函数实现原理解析
2020/08/29 Javascript
在python中,使用scatter绘制散点图的实例
2019/07/03 Python
Python循环结构的应用场景详解
2019/07/11 Python
基于python二叉树的构造和打印例子
2019/08/09 Python
10个示例带你掌握python中的元组
2020/11/23 Python
CSS3 3D制作实战案例分析
2016/09/18 HTML / CSS
应届生自我鉴定
2013/12/11 职场文书
会计专业自我评价
2014/02/12 职场文书
交通事故死亡赔偿协议书
2014/12/03 职场文书
2015年药房工作总结
2015/04/25 职场文书
ICOM R71E和R72E图文对比解说
2022/04/07 无线电
CSS浮动引起的高度塌陷问题
2022/08/05 HTML / CSS
vue本地构建热更新卡顿的问题“75 advanced module optimization”完美解决方案
2022/08/05 Vue.js