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函数ajax
Aug 20 Javascript
window.parent与window.openner区别介绍
Apr 12 Javascript
解析js中获得父窗口链接getParent方法以及各种打开窗口的方法
Jun 19 Javascript
jQuery插件pagination实现无刷新分页
May 21 Javascript
解决layui前端框架 form表单,table表等内置控件不显示的问题
Aug 19 Javascript
Vue 组件修改根实例的数据的方法
Apr 02 Javascript
Node.js 获取微信JS-SDK CONFIG的方法示例
May 21 Javascript
微信小程序+云开发实现欢迎登录注册
May 24 Javascript
JS中async/await实现异步调用的方法
Aug 28 Javascript
webpack3升级到webpack4遇到问题总结
Sep 30 Javascript
小程序中设置缓存过期的实现方法
Jan 14 Javascript
JS一分钟在github+Jekyll的博客中添加访问量功能的实现
Apr 03 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进行MySQL删除记录操作代码
2008/06/07 PHP
ExtJS与PHP、MySQL实现存储的方法
2010/04/02 PHP
PDO防注入原理分析以及使用PDO的注意事项总结
2014/10/23 PHP
PHP读取CSV大文件导入数据库的实例
2017/07/24 PHP
JAVASCRIPT 对象的创建与使用
2021/03/09 Javascript
JavaScript中令你抓狂的魔术变量
2006/11/30 Javascript
JQuery 应用 JQuery.groupTable.js
2010/12/15 Javascript
让你的博客飘雪花超出屏幕依然看得见
2013/01/04 Javascript
javascript中encodeURI和decodeURI方法使用介绍
2013/05/06 Javascript
jq实现酷炫的鼠标经过图片翻滚效果
2014/03/12 Javascript
javascript基本类型详解
2014/11/28 Javascript
JavaScript获取当前cpu使用率的方法
2015/12/15 Javascript
JS深度拷贝Object Array实例分析
2016/03/31 Javascript
基于jquery实现二级联动效果
2017/03/30 jQuery
详解Vue 方法与事件处理器
2017/06/20 Javascript
在vue-cli脚手架中配置一个vue-router前端路由
2017/07/03 Javascript
对node.js中render和send的用法详解
2018/05/14 Javascript
Angular中的ng-template及angular 使用ngTemplateOutlet 指令的方法
2018/08/08 Javascript
JavaScript数据结构与算法之二叉树添加/删除节点操作示例
2019/03/01 Javascript
原生JS实现动态添加新元素、删除元素方法
2019/05/05 Javascript
JavaScript 格式化数字、金额、千分位、保留几位小数、舍入舍去
2019/07/23 Javascript
深入了解Vue.js 混入(mixins)
2020/07/23 Javascript
Python 字符串中的字符倒转
2008/09/06 Python
python网络编程学习笔记(二):socket建立网络客户端
2014/06/09 Python
python端口扫描系统实现方法
2014/11/19 Python
django之常用命令详解
2016/06/30 Python
Python 利用切片从列表中取出一部分使用的方法
2019/02/01 Python
python中时间转换datetime和pd.to_datetime详析
2019/08/11 Python
在pytorch 中计算精度、回归率、F1 score等指标的实例
2020/01/18 Python
matplotlib 生成的图像中无法显示中文字符的解决方法
2020/06/10 Python
使用CSS3编写灰阶滤镜来制作黑白照片效果的方法
2016/05/09 HTML / CSS
简短证婚人证婚词
2014/01/09 职场文书
教师考核评语
2014/04/28 职场文书
团组织推优材料
2014/12/29 职场文书
《女娲补天》教学反思
2016/02/20 职场文书
css filter和getUserMedia的联合使用
2022/02/24 HTML / CSS