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 获取当前时间戳的代码
Aug 05 Javascript
js 赋值包含单引号双引号问题的解决方法
Feb 26 Javascript
浅谈jQuery效果函数
Sep 16 Javascript
javascript replace()第二个参数为函数时的参数用法
Dec 26 Javascript
Ajax实现不刷新取最新商品
Mar 01 Javascript
Vue和Bootstrap的整合思路详解
Jun 30 Javascript
全面解析jQuery中的$(window)与$(document)的用法区别
Aug 15 jQuery
动手写一个angular版本的Message组件的方法
Dec 16 Javascript
浅谈在不使用ssr的情况下解决Vue单页面SEO问题(2)
Nov 08 Javascript
vue 动态添加class,三个以上的条件做判断方式
Nov 02 Javascript
JavaScript实现alert弹框效果
Nov 19 Javascript
Vue实现多页签组件
Jan 14 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
《星际争霸2》终章已出 RTS时代宣告终结
2017/02/07 星际争霸
一键删除顽固的空文件夹 软件下载
2007/01/26 PHP
php 生成饼图 三维饼图
2009/09/28 PHP
ubutu 16.04环境下,PHP与mysql数据库,网页登录验证实例讲解
2017/07/20 PHP
javascript实现动态CSS换肤技术的脚本
2007/06/29 Javascript
jQuery 浮动广告实现代码
2008/12/25 Javascript
js文件中调用js的实现方法小结
2009/10/23 Javascript
js 获取后台的字段 改变 checkbox的被选中的状态 代码
2013/06/05 Javascript
jQuery选择器源码解读(六):Sizzle选择器匹配逻辑分析
2015/03/31 Javascript
jQuery插件jPaginate实现无刷新分页
2015/05/04 Javascript
js实现新浪微博首页效果
2015/10/16 Javascript
js获取及修改网页背景色和字体色的方法
2015/12/29 Javascript
JS模态窗口返回值兼容问题的完美解决方法
2016/05/28 Javascript
vuejs2.0运用原生js实现简单的拖拽元素功能示例
2017/02/24 Javascript
详解webpack解惑:require的五种用法
2017/06/09 Javascript
JavaScript转换数据库DateTime字段类型方法
2017/06/27 Javascript
在vue项目中使用codemirror插件实现代码编辑器功能
2019/08/27 Javascript
python实现指定字符串补全空格的方法
2015/04/30 Python
利用标准库fractions模块让Python支持分数类型的方法详解
2017/08/11 Python
python函数修饰符@的使用方法解析
2019/09/02 Python
python numpy之np.random的随机数函数使用介绍
2019/10/06 Python
Python flask框架实现浏览器点击自定义跳转页面
2020/06/04 Python
Python matplotlib读取excel数据并用for循环画多个子图subplot操作
2020/07/14 Python
python实现excel公式格式化的示例代码
2020/12/23 Python
浅析css3中matrix函数的使用
2016/06/06 HTML / CSS
css3动画效果小结(推荐)
2016/07/25 HTML / CSS
CSS3 2D模拟实现摩天轮旋转效果
2016/11/16 HTML / CSS
Expedia爱尔兰:酒店、机票、租车及廉价假期
2017/01/02 全球购物
lululemon美国官网:瑜伽服+跑步装备
2018/11/16 全球购物
土木工程专业大学毕业生求职信
2013/10/13 职场文书
预备党员表决心书
2014/03/11 职场文书
文明寄语大全
2014/04/11 职场文书
缓刑期间思想汇报范文
2014/10/10 职场文书
优秀党员先进事迹材料
2014/12/18 职场文书
班组长如何制订适合本班组的工作计划?
2019/07/10 职场文书
解决golang 关于全局变量的坑
2021/05/06 Golang