JS调用webservice的通用函数
时间:2011-04-13 来源:易独
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 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/">'; 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.webxml.com.cn/WebServices/WeatherWebService.asmx", "http://WebXml.com.cn/" ); }
相关阅读 更多 +