調(diào)用: RequestByPost(method,variable,value,url,_Namespace) method:web service的方法名 variable:web service的方法的變量名數(shù)組 value:web service的方法的變量的值的數(shù)組 url:請求的地址(asmx文件地址) _Namespace:web service的命名空間 <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>找不到請求的服務(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 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./2001/XMLSchema-instance" xmlns:xsd="http://www./2001/XMLSchema" xmlns:soap="'">http://schemas./soap/envelope/">'; 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); } //CallHelloWorld! function SayHello_onclick() { //alert(document.getElementById('YourName').value); RequestByPost("HelloWorld",new Array("msg"),new Array(document.getElementById('YourName').value),"WebService.asmx","localhost/"); } //WeatherReport Test: function Button2_onclick() { RequestByPost("getWeatherbyCityName",new Array("theCityName"),new Array(document.getElementById('CityName').value),"http://www./WebServices/WeatherWebService.asmx","http://WebXml.com.cn/"); } // ]]> </script> 默認(rèn)的命名空間名字應(yīng)該以“/”結(jié)尾 另:相關(guān)連接請參考:
常用WebServices返回?cái)?shù)據(jù)的4種方法比較
http://www./showtopic-23733.html MooTools國外經(jīng)典實(shí)例與教程大集合 http://www.cnblogs.com/delphi2007/articles/1602502.html http:///tutorials/mootools/1045.html http://www.cnblogs.com/luluping/archive/2008/05/04/1181665.html 在.net中集成Mootools做圖片動態(tài)翻頁
http://kb.cnblogs.com/a/1414420/ |
|
來自: 青格兒 > 《腳本開發(fā)》