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 相关文章推荐
javascript div 遮罩层封锁整个页面
Jul 10 Javascript
jQuery Ajax之$.get()方法和$.post()方法
Oct 12 Javascript
js操作iframe父子窗体示例
May 22 Javascript
解决jQuery使用JSONP时产生的错误
Dec 02 Javascript
jquery动态添加以及遍历option并获取特定样式名称的option方法
Jan 29 jQuery
json对象及数组键值的深度大小写转换问题详解
Mar 30 Javascript
Vue.js 使用v-cloak后仍显示变量的解决方法
Nov 19 Javascript
如何在JavaScript中优雅的提取循环内数据详解
Mar 04 Javascript
layui实现数据表格table分页功能(ajax异步)
Jul 27 Javascript
element-ui 实现响应式导航栏的示例代码
May 08 Javascript
Vue中添加滚动事件设置的方法详解
Sep 14 Javascript
手把手教你从零开始react+antd搭建项目
Jun 03 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
yii2.0数据库迁移教程【多个数据库同时同步数据】
2016/10/08 PHP
关于Yii中模型场景的一些简单介绍
2019/09/22 PHP
JS 实现完美include载入实现代码
2010/08/05 Javascript
原创javascript小游戏实现代码
2010/08/19 Javascript
javascript学习笔记(十一) 正则表达式介绍
2012/06/20 Javascript
iframe 上下滚动条如何默认在下方实现原理
2012/12/10 Javascript
js日期相关函数总结分享
2013/10/15 Javascript
动态的绑定事件addEventListener方法的使用
2014/01/24 Javascript
js实现按钮控制图片360度翻转特效的方法
2015/02/17 Javascript
jquery ajax 如何向jsp提交表单数据
2015/08/23 Javascript
写给小白的JavaScript引擎指南
2015/12/04 Javascript
解析JavaScript中的字符串类型与字符编码支持
2016/06/24 Javascript
JavaScript中的Reflect对象详解(ES6新特性)
2016/07/22 Javascript
详解React 在服务端渲染的实现
2017/11/16 Javascript
JS函数节流和防抖之间的区分和实现详解
2019/01/11 Javascript
在vue中高德地图引入和轨迹的绘制的实现
2019/10/11 Javascript
微信小程序实现上传多个文件 超过10个
2020/03/30 Javascript
javascript设计模式 ? 迭代器模式原理与用法实例分析
2020/04/17 Javascript
vue自定义树状结构图的实现方法
2020/10/18 Javascript
在Python中操作列表之List.append()方法的使用
2015/05/20 Python
Python 模拟登陆的两种实现方法
2017/08/10 Python
Python3实现的画图及加载图片动画效果示例
2018/01/19 Python
python消除序列的重复值并保持顺序不变的实例
2018/11/08 Python
python调用摄像头拍摄数据集
2019/06/01 Python
Python 50行爬虫抓取并处理图灵书目过程详解
2019/09/20 Python
Python OpenCV实现测量图片物体宽度
2020/05/27 Python
全球领先的鞋类零售商:The Walking Company
2016/07/21 全球购物
世界上最大的艺术和工艺用品商店:MisterArt.com
2018/07/13 全球购物
For Art’s Sake官网:手工制作的奢华眼镜
2018/12/15 全球购物
会议接待欢迎词
2014/01/12 职场文书
竞选副班长演讲稿
2014/04/24 职场文书
如何撰写一封出色的求职信
2014/04/27 职场文书
活动总结怎么写
2014/04/28 职场文书
安全施工责任书
2014/08/25 职场文书
python自动化八大定位元素讲解
2021/07/09 Python
在Windows Server 2012上安装 .NET Framework 3.5 所遇到的问题
2022/04/29 Servers