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 相关文章推荐
ExtJs事件机制基本代码模型和流程解析
Oct 24 Javascript
一个JQuery写的点击上下滚动的小例子
Aug 27 Javascript
js内存泄露的几种情况详细探讨
May 31 Javascript
js对列表中第一个值处理与jsp页面对列表中第一个值处理的区别详解
Nov 05 Javascript
jquery获取css中的选择器(实例讲解)
Dec 02 Javascript
使用javascript实现json数据以csv格式下载
Jan 09 Javascript
JavaScript中实现单体模式分享
Jan 29 Javascript
JavaScript 对象深入学习总结(经典)
Sep 29 Javascript
整理Javascript基础入门学习笔记
Nov 29 Javascript
搭建基于express框架运行环境的方法步骤
Nov 15 Javascript
JS大坑之19位数的Number型精度丢失问题详解
Apr 22 Javascript
vue 实现单选框设置默认选中值
Nov 07 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分页函数
2006/07/08 PHP
PHP队列用法实例
2014/11/05 PHP
php读取csv文件并输出的方法
2015/03/14 PHP
雄兵连第三季海报曝光,艾妮熙德成主角,蔷薇新造型
2021/03/09 国漫
javascript实现的使用方向键控制光标在table单元格中切换
2010/11/17 Javascript
使用Mootools动态添加Css样式表代码,兼容各浏览器
2011/12/12 Javascript
Javascript模块化编程(三)require.js的用法及功能介绍
2013/01/17 Javascript
基于jquery实现的定时显示与隐藏div广告的实现代码
2013/08/22 Javascript
两个数组去重的JS代码
2013/12/04 Javascript
jquery实现带二级菜单的导航示例
2014/04/28 Javascript
使用AngularJS来实现HTML页面嵌套的方法
2015/06/17 Javascript
js结合正则实现国内手机号段校验
2015/06/19 Javascript
jQuery下拉友情链接美化效果代码分享
2015/08/26 Javascript
jQuery中ajax的load()与post()方法实例详解
2016/01/05 Javascript
jQuery操作动态生成的内容的方法
2016/05/28 Javascript
JS组件Bootstrap Select2使用方法解析
2016/05/30 Javascript
JavaScript实现解析INI文件内容的方法
2016/11/17 Javascript
vue component组件使用方法详解
2017/07/14 Javascript
浅谈Vue.js中的v-on(事件处理)
2017/09/05 Javascript
NodeJS使用Range请求实现下载功能的方法示例
2018/10/12 NodeJs
JavaScript实现的九种排序算法
2019/03/04 Javascript
详解vue开发中调用微信jssdk的问题
2019/04/16 Javascript
vue中input的v-model清空操作
2019/09/06 Javascript
vue项目中常见问题及解决方案(推荐)
2019/10/21 Javascript
浅谈Python实现Apriori算法介绍
2017/12/20 Python
Python中%是什么意思?python中百分号如何使用?
2018/03/20 Python
pygame实现俄罗斯方块游戏(对战篇1)
2019/10/29 Python
python实现超级马里奥
2020/03/18 Python
python 代码实现k-means聚类分析的思路(不使用现成聚类库)
2020/06/01 Python
HTML5 canvas基本绘图之图形变换
2016/06/27 HTML / CSS
JSF面试题:Jsf中的核心类用那些?有什么作用?LiftCycle六大生命周期是什么?
2014/07/17 面试题
Linux管理员面试经常问道的相关命令
2014/12/12 面试题
财产分割协议书范本
2014/11/03 职场文书
Java 将PPT幻灯片转为HTML文件的实现思路
2021/06/11 Java/Android
CentOS7环境下MySQL8常用命令小结
2022/06/10 Servers
nginx七层负载均衡配置详解
2022/07/15 Servers