js調(diào)用webservice構(gòu)造SOAP進(jìn)行身份驗(yàn)證
本文實(shí)例為大家分享了js調(diào)用webservice構(gòu)造SOAP進(jìn)行身份驗(yàn)證的相關(guān)內(nèi)容,注釋清除,供大家參考,具體內(nèi)容如下
<html> <head> <title>無標(biāo)題頁</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>找不到請(qǐng)求的服務(wù)器資源!"; } } else if(xmlhttp.readyState==0) { h.innerHTML="<br>未初始化!"; } else if(xmlhttp.readyState==1) { h.innerHTML="<br>正在加載……!"; } else if(xmlhttp.readyState==2) { h.innerHTML="<br>已經(jīng)加載完成!"; } else if(xmlhttp.readyState==3) { h.innerHTML="<br>正在和服務(wù)器交互"; } 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)) //匹配雙字節(jié) { 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 //實(shí)際上這段代碼就是用JS構(gòu)造一個(gè)字符串,而這個(gè)字符串就是通過瀏覽器查看WEBSERVICE時(shí)方法時(shí)出現(xiàn)的那段 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/">'; //加了這段可以實(shí)現(xiàn)soap頭 //UserName ,Pwd這是我的SOAP驗(yàn)證形式,需替換 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() { //方法名,參數(shù)名,參數(shù)值,服務(wù)URL,服務(wù)所使用命名空間 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>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家學(xué)習(xí)javascript程序設(shè)計(jì)有所幫助。
- java webservice上傳下載文件代碼分享
- ASP.NET使用WebService實(shí)現(xiàn)天氣預(yù)報(bào)功能
- C# WebService發(fā)布以及IIS發(fā)布
- ASP.NET調(diào)用WebService服務(wù)的方法詳解
- jQuery中通過ajax調(diào)用webservice傳遞數(shù)組參數(shù)的問題實(shí)例詳解
- ajax跨域調(diào)用webservice的實(shí)現(xiàn)代碼
- PHP使用SOAP擴(kuò)展實(shí)現(xiàn)WebService的方法
- ASP調(diào)用WebService轉(zhuǎn)化成JSON數(shù)據(jù),附j(luò)son.min.asp
- Web Service 運(yùn)行原理詳細(xì)介紹
相關(guān)文章
JScript 腳本實(shí)現(xiàn)文件下載 一般用于下載木馬
腳本實(shí)現(xiàn)文件下載,這個(gè)是jscript的,腳本之家以前曾發(fā)布vbscript版本的,原理一樣的。2009-10-10javascript導(dǎo)出csv文件(excel)的方法示例
這篇文章主要給大家介紹了關(guān)于javascript導(dǎo)出csv文件(excel)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用javascript具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08javascript 小數(shù)乘法結(jié)果錯(cuò)誤的處理方法
下面小編就為大家?guī)硪黄猨avascript 小數(shù)乘法結(jié)果錯(cuò)誤的處理方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-07-07找到了一篇jQuery與Prototype并存的沖突的解決方法
找到了一篇jQuery與Prototype并存的沖突的解決方法...2007-08-08JS實(shí)現(xiàn)點(diǎn)擊復(fù)選框變更DIV顯示狀態(tài)的示例代碼
下面小編就為大家分享一篇JS實(shí)現(xiàn)點(diǎn)擊復(fù)選框變更DIV顯示狀態(tài)的示例代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2017-12-12Vue3中使用typescript封裝axios的實(shí)例詳解
這篇文章主要介紹了使用typescript封裝axios的實(shí)例代碼,為了方便,在vue3的配置里面按需加載element-plus,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-10-10JavaScript中數(shù)組的排序、亂序和搜索實(shí)現(xiàn)代碼
JavaScript中實(shí)現(xiàn)數(shù)組的排序、亂序和搜索,其實(shí)所有這些功能,用一個(gè)sort()就可以完成了2011-11-11微信小程序request請(qǐng)求封裝,驗(yàn)簽代碼實(shí)例
這篇文章主要介紹了微信小程序request請(qǐng)求封裝,驗(yàn)簽代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12