Welcome 微信登录

首页 / 脚本样式 / JavaScript / JS调用webservice的通用函数

JS调用webservice的通用函数2011-01-27 博客园 四喜调用:

RequestByPost(method,variable,value,url,_Namespace)

method:webservice的方法名

variable:webservice的方法的变量名数组

value:webservice的方法的变量的值的数组

url:请求的地址(asmx文件地址)

_Namespace:webservice的命名空间

<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

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/");
}

// ]]>
</script>
////////////////////////////////
////////Sixi. Let it be.../////
//////////////////////////////