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事件委托用法分析
Jan 24 Javascript
JavaScript对数字的判断与处理实例分析
Feb 02 Javascript
jQuery插件Tooltipster实现漂亮的工具提示
Apr 12 Javascript
jQuery中通过ajax的get()函数读取页面的方法
Feb 29 Javascript
JS iFrame加载慢怎么解决
May 13 Javascript
BootStrap的JS插件之轮播效果案例详解
May 16 Javascript
JS仿百度自动下拉框模糊匹配提示
Jul 25 Javascript
浅析Jquery操作select
Dec 13 Javascript
javascript+html5+css3自定义提示窗口
Jun 21 Javascript
基于Bootstrap模态对话框只加载一次 remote 数据的解决方法
Jul 09 Javascript
浅谈如何使用 webpack 优化资源
Oct 20 Javascript
vue cli安装使用less的教程详解
Jul 12 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循环获取GET和POST值的代码
2008/04/09 PHP
PHP中的按位与和按位或操作示例
2014/01/27 PHP
php+ajax实时输入自动搜索匹配的方法
2014/12/26 PHP
PHP编写daemon process 实例详解
2016/11/13 PHP
php基于PDO实现功能强大的MYSQL封装类实例
2017/02/27 PHP
php反射学习之依赖注入示例
2019/06/14 PHP
PHP的图像处理实例小结【文字水印、图片水印、压缩图像等】
2019/12/20 PHP
JavaScript中的排序算法代码
2011/02/22 Javascript
imgAreaSelect 中文文档帮助说明
2011/10/08 Javascript
javascript实现存储hmtl字符串示例
2014/04/25 Javascript
深入浅析NodeJs并发异步的回调处理
2015/12/21 NodeJs
理解javascript中的MVC模式
2016/01/28 Javascript
在Html中使用Requirejs进行模块化开发实例详解
2016/04/15 Javascript
js html css实现复选框全选与反选
2016/10/09 Javascript
jquery获取input type=text中的值的各种方式(总结)
2016/12/02 Javascript
清除浏览器缓存的几种方法总结(必看)
2016/12/09 Javascript
js 输入框 正则表达式(菜鸟必看教程)
2017/02/19 Javascript
JavaScript标准对象_动力节点Java学院整理
2017/06/27 Javascript
解决循环中setTimeout执行顺序的问题
2018/06/20 Javascript
JS实现的A*寻路算法详解
2018/12/14 Javascript
Fetch超时设置与终止请求详解
2019/05/18 Javascript
vue项目中极验验证的使用代码示例
2019/12/03 Javascript
Vue Router中应用中间件的方法
2020/08/06 Javascript
Javascript前端下载后台传来的文件流代码实例
2020/08/18 Javascript
VSCode插件安装完成后的配置(常用配置)
2020/08/24 Javascript
python实现批量转换文件编码(批转换编码示例)
2014/01/23 Python
Python解析xml中dom元素的方法
2015/03/12 Python
Python计算已经过去多少个周末的方法
2015/07/25 Python
python使用itchat实现手机控制电脑
2018/02/22 Python
Django框架实现的简单分页功能示例
2018/12/04 Python
Python在cmd上打印彩色文字实现过程详解
2019/08/07 Python
用Python将Excel数据导入到SQL Server的例子
2019/08/24 Python
python实现双人五子棋(终端版)
2020/12/30 Python
《童年》教学反思
2014/02/18 职场文书
个人工作年终总结
2015/03/09 职场文书
Java线程的6种状态与生命周期
2022/05/11 Java/Android