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 相关文章推荐
js 获取(接收)地址栏参数值的方法
Apr 01 Javascript
js获得网页背景色和字体色的方法
Mar 21 Javascript
js+css实现tab菜单切换效果的方法
Jan 20 Javascript
JQuery+CSS实现图片上放置按钮的方法
May 29 Javascript
JS操作JSON方法总结(推荐)
Jun 14 Javascript
微信小程序实战之自定义toast(6)
Apr 18 Javascript
推荐VSCode 上特别好用的 Vue 插件之vetur
Sep 14 Javascript
浅谈实现vue2.0响应式的基本思路
Feb 13 Javascript
Vue一次性简洁明了引入所有公共组件的方法
Nov 28 Javascript
Fundebug支持监控微信小程序HTTP请求错误的方法
Feb 21 Javascript
浅析vue中的MVVM实现原理
Mar 04 Javascript
pageGroup.js实现分页功能
Jul 27 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
php addslashes及其他清除空格的方法是不安全的
2012/01/25 PHP
php结合ACCESS的跨库查询功能
2015/06/12 PHP
php+mysql实现简单的增删改查功能
2015/07/13 PHP
jQuery为iframe的body添加click事件的实现代码
2011/04/07 Javascript
Node.js中对通用模块的封装方法
2014/06/06 Javascript
javascript获取隐藏元素(display:none)的高度和宽度的方法
2014/06/06 Javascript
用NODE.JS中的流编写工具是要注意的事项
2016/03/01 Javascript
JS+CSS3模拟溢出滚动效果
2016/08/12 Javascript
jQuery插件实现可输入和自动匹配的下拉框
2016/10/24 Javascript
使用 bootstrap modal遇到的问题小结
2016/11/09 Javascript
Node.js 数据加密传输浅析
2016/11/16 Javascript
js实现简易垂直滚动条
2017/02/22 Javascript
AngularJS 验证码60秒倒计时功能的实现
2017/06/05 Javascript
利用百度地图API获取当前位置信息的实例
2017/11/06 Javascript
基于jQuery的$.getScript方法去加载javaScript文档解析
2017/11/08 jQuery
JavaScript中字符串的常用操作方法及特殊字符
2018/03/18 Javascript
通过vue-cli3构建一个SSR应用程序的方法
2018/09/13 Javascript
详解jenkins自动化部署vue
2019/05/14 Javascript
vue路由拦截器和请求拦截器知识点总结
2019/11/08 Javascript
微信小程序实现滑动翻页效果(完整代码)
2019/12/06 Javascript
Vue自定义render统一项目组弹框功能
2020/06/07 Javascript
Javascript confirm多种使用方法解析
2020/09/25 Javascript
python实现dnspod自动更新dns解析的方法
2014/02/14 Python
python下载文件时显示下载进度的方法
2015/04/02 Python
在Python中利用Pandas库处理大数据的简单介绍
2015/04/07 Python
django中url映射规则和服务端响应顺序的实现
2020/04/02 Python
python程序输出无内容的解决方式
2020/04/09 Python
HTML5 Canvas实现放大镜效果示例
2020/03/25 HTML / CSS
猫途鹰:全球领先的旅游点评社区
2017/04/07 全球购物
美国电子产品折扣网站:Daily Steals
2017/05/20 全球购物
Bibloo荷兰:女士、男士和儿童的服装、鞋子和配饰
2019/02/25 全球购物
学生党员一帮一活动总结
2014/07/08 职场文书
质量主管工作职责
2014/09/26 职场文书
幼儿园教师暑期培训心得体会
2016/01/09 职场文书
会议开幕致辞怎么写
2016/03/03 职场文书
Python 的演示平台支持 WSGI 接口的应用
2022/04/20 Python