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分页脚本
May 21 Javascript
JavaScript 获取用户客户端操作系统版本
Aug 25 Javascript
gridpanel动态加载数据的实例代码
Jul 18 Javascript
js使用正则实现ReplaceAll全部替换的方法
Aug 22 Javascript
JavaScript弹出新窗口并控制窗口移动到指定位置的方法
Apr 06 Javascript
AngularJS 遇到的小坑与技巧小结
Jun 07 Javascript
全面了解JS中的匿名函数
Jun 29 Javascript
jQuery File Upload文件上传插件使用详解
Dec 06 Javascript
node实现基于token的身份验证
Apr 09 Javascript
html2canvas属性和使用方法以及如何使用html2canvas将HTML内容写入Canvas生成图片
Jan 12 Javascript
jquery添加div实现消息聊天框
Feb 08 jQuery
JS实现图片幻灯片效果代码实例
May 21 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
phpmyadmin 常用选项设置详解版
2010/03/07 PHP
PHP产生不重复随机数的5个方法总结
2014/11/12 PHP
MySql数据库查询结果用表格输出PHP代码示例
2015/03/20 PHP
php实现转换ubb代码的方法
2015/06/18 PHP
深入理解PHP JSON数组与对象
2016/07/19 PHP
PHP 年月日的三级联动实例代码
2017/05/24 PHP
a标签的css样式四个状态
2021/03/09 HTML / CSS
JavaScript Event学习第十一章 按键的检测
2010/02/10 Javascript
JS 事件绑定函数代码
2010/04/28 Javascript
MyEclipse取消验证Js的两种方法
2013/11/14 Javascript
jquery实现简单实用的弹出层效果代码
2015/10/15 Javascript
jQuery实现iframe父窗体和子窗体的相互调用
2016/06/17 Javascript
js简单实现图片延迟加载的方法
2016/07/19 Javascript
Jquery获取当前城市的天气信息
2016/08/05 Javascript
bootstrap 表单验证使用方法
2017/01/11 Javascript
详解Vue2中组件间通信的解决全方案
2017/07/28 Javascript
React教程之Props验证的具体用法(Props Validation)
2017/09/04 Javascript
bootstrap时间插件daterangepicker使用详解
2017/10/19 Javascript
js字符串类型String常用操作实例总结
2019/07/05 Javascript
python实现颜色空间转换程序(Tkinter)
2015/12/31 Python
Python实现MySQL操作的方法小结【安装,连接,增删改查等】
2017/07/12 Python
利用selenium爬虫抓取数据的基础教程
2019/06/10 Python
Python 实现大整数乘法算法的示例代码
2019/09/17 Python
浅谈tensorflow之内存暴涨问题
2020/02/05 Python
解决Alexnet训练模型在每个epoch中准确率和loss都会一升一降问题
2020/06/17 Python
canvas离屏技术与放大镜实现代码示例
2018/08/31 HTML / CSS
详解移动端h5页面根据屏幕适配的四种方案
2020/04/15 HTML / CSS
中粮集团旗下食品网上购物网站:我买网
2016/09/22 全球购物
英国天然抗衰老护肤品品牌:Nakin Skin Care
2019/04/16 全球购物
在职人员函授期间自我评价分享
2013/11/08 职场文书
房产销售独家委托书范本
2014/10/01 职场文书
法务专员岗位职责
2015/02/14 职场文书
小学英语教学经验交流材料
2015/11/02 职场文书
详解Flask开发技巧之异常处理
2021/06/15 Python
mysql获取指定时间段中所有日期或月份的语句(不设存储过程,不加表)
2021/06/18 MySQL
C#连接ORACLE出现乱码问题的解决方法
2021/10/05 Oracle