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 随机数产生6位数字
May 13 Javascript
禁止拷贝网页内容的js代码
Jan 22 Javascript
Javascript 按位左移运算符使用介绍(
Feb 04 Javascript
js获取视频时长代码
Apr 10 Javascript
javascript类型转换示例
Apr 29 Javascript
node.js中使用socket.io的方法
Dec 15 Javascript
基于JavaScript实现快速转换文本语言(繁体中文和简体中文)
Mar 07 Javascript
Angularjs CURD 详解及实例代码
Sep 14 Javascript
js 判断附件后缀的简单实现方法
Oct 11 Javascript
javascript面向对象三大特征之封装实例详解
Jul 24 Javascript
js实现文章目录索引导航(table of content)
May 10 Javascript
vue3.0实现点击切换验证码(组件)及校验
Nov 18 Vue.js
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
destoon实现商铺管理主页设置增加新菜单的方法
2014/06/26 PHP
php数组添加元素方法小结
2014/12/20 PHP
PHP中in_array函数使用的问题与解决办法
2016/09/11 PHP
基于php(Thinkphp)+jquery 实现ajax多选反选不选删除数据功能
2017/02/24 PHP
Yii2框架中一些折磨人的坑
2019/12/15 PHP
jquery插件制作教程 txtHover
2012/08/17 Javascript
js 左右悬浮对联广告特效代码
2014/12/12 Javascript
SublimeText自带格式化代码功能之reindent
2015/12/27 Javascript
Jquery on方法绑定事件后执行多次的解决方法
2016/06/02 Javascript
常用js,css文件统一加载方法(推荐) 并在加载之后调用回调函数
2016/09/23 Javascript
浅谈js中用$(#ID)来作为选择器的问题(id重复的时候)
2017/02/14 Javascript
基于JavaScript 性能优化技巧心得(分享)
2017/12/11 Javascript
Puppeteer环境搭建的详细步骤
2018/09/21 Javascript
深入了解响应式React Native Echarts组件
2019/05/29 Javascript
node crawler如何添加promise支持
2020/02/01 Javascript
js实现随机点名器精简版
2020/06/29 Javascript
浅谈Ant Design Pro 菜单自定义 icon
2020/11/17 Javascript
基于javascript实现放大镜特效
2020/12/03 Javascript
Python快速排序算法实例分析
2017/11/29 Python
Django框架的使用教程路由请求响应的方法
2018/07/03 Python
使用python进行波形及频谱绘制的方法
2019/06/17 Python
python datetime中strptime用法详解
2019/08/29 Python
tensorflow 2.0模式下训练的模型转成 tf1.x 版本的pb模型实例
2020/06/22 Python
CSS3制作日历实现代码
2012/01/21 HTML / CSS
CSS实现限制字数功能当对象内文本溢出时显示省略标记
2014/08/20 HTML / CSS
让IE9以下版本的浏览器兼容HTML5的方法
2014/03/12 HTML / CSS
蒙蒂塞罗商店:Monticello Shop
2018/11/25 全球购物
个人查摆剖析材料
2014/02/04 职场文书
网络管理员岗位职责
2014/03/17 职场文书
信电学院毕业生自荐书
2014/05/24 职场文书
本科毕业生应聘自荐信范文
2014/06/26 职场文书
甘南现象心得体会
2014/09/11 职场文书
考试作弊检讨书
2014/10/21 职场文书
2014年银行年终工作总结
2014/12/19 职场文书
初中成绩单评语
2014/12/29 职场文书
村党总支部公开承诺书2016
2016/03/25 职场文书