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 节点遍历函数
Mar 28 Javascript
js解析xml字符串和xml文档实现原理及代码(针对ie与火狐)
Feb 02 Javascript
详细分析使用AngularJS编程中提交表单的方式
Jun 19 Javascript
Three.js学习之文字形状及自定义形状
Aug 01 Javascript
jQuery动态改变多行文本框高度的方法
Sep 07 Javascript
纯js的右下角弹窗实例
Mar 12 Javascript
JS之if语句对接事件动作逻辑(详解)
Jun 28 Javascript
vue 组件高级用法实例详解
Apr 11 Javascript
Vue2.0中三种常用传值方式(父传子、子传父、非父子组件传值)
Aug 16 Javascript
js的继承方法小结(prototype、call、apply)(推荐)
Apr 17 Javascript
Vue v-bind动态绑定class实例方法
Jan 15 Javascript
webpack中的模式(mode)使用详解
Feb 20 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
通过dbi使用perl连接mysql数据库的方法
2014/04/16 PHP
PHP引用返回用法示例
2016/05/28 PHP
php flush无效,IIS7下php实时输出的方法
2016/08/25 PHP
PHP使用SWOOLE扩展实现定时同步 MySQL 数据
2017/04/09 PHP
Yii2结合Workerman的websocket示例详解
2018/09/10 PHP
Extjs学习笔记之八 继承和事件基础
2010/01/08 Javascript
各浏览器对click方法的支持差异小结
2011/07/31 Javascript
什么是cookie?js手动创建和存储cookie
2014/05/27 Javascript
Node.js的特点和应用场景介绍
2014/11/04 Javascript
jQuery实现为图片添加镜头放大效果的方法
2015/06/25 Javascript
Node.js + Redis Sorted Set实现任务队列
2016/09/19 Javascript
D3.js实现柱状图的方法详解
2016/09/21 Javascript
基于JavaScript获取base64图片大小
2019/10/18 Javascript
js 数组当前行添加数据方法详解
2020/07/28 Javascript
Django开发中复选框用法示例
2018/03/20 Python
windows下添加Python环境变量的方法汇总
2018/05/14 Python
python和shell监控linux服务器的详细代码
2018/06/22 Python
python GUI库图形界面开发之PyQt5中QWebEngineView内嵌网页与Python的数据交互传参详细方法实例
2020/02/26 Python
在pytorch中实现只让指定变量向后传播梯度
2020/02/29 Python
在echarts中图例legend和坐标系grid实现左右布局实例
2020/05/16 Python
Java如何基于wsimport调用wcf接口
2020/06/17 Python
Peter Alexander新西兰站:澳大利亚领先的睡衣设计师品牌
2016/12/10 全球购物
马来西亚网上美容店:Hermo.my
2017/11/25 全球购物
城建学院毕业生自荐信
2014/01/31 职场文书
入党积极分子评语
2014/05/04 职场文书
大学生工作自荐书
2014/06/16 职场文书
优秀团员事迹材料1500字
2014/08/31 职场文书
教育系统干部作风整顿心得体会
2014/09/09 职场文书
入党积极分子批评与自我批评思想汇报
2014/09/14 职场文书
学校党的群众路线教育实践活动对照检查材料
2014/09/24 职场文书
高中班主任评语
2014/12/30 职场文书
英文版辞职信
2015/02/28 职场文书
离婚承诺书格式范文
2015/05/04 职场文书
公文写作:新员工转正申请书范本3篇!
2019/08/07 职场文书
2019运动会广播加油稿汇总
2019/08/21 职场文书
Go语言入门exec的基本使用
2022/05/20 Golang