JS调用webservice的通用函数。

刚开始接触ajax的时候好蛋疼啊,还是jquery用着爽。各位看官可以忽略此篇了。

 

调用:

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()
ExpandedBlockStart.gifContractedBlock.gif
{
    
var h=document.getElementById("Label1");
    
if(xmlhttp.readyState==4)
ExpandedSubBlockStart.gifContractedSubBlock.gif    
{
        
if(xmlhttp.status==200)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
{
            alert(xmlhttp.responseText);
            h.innerHTML
=xmlhttp.responseText;
            
//h.innerHTML=xmlhttp.responseXML;
        }

        
else if(xmlhttp.status==404)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
{
            h.innerHTML
="<br>找不到请求的服务器资源!";
        }

    }

    
else if(xmlhttp.readyState==0)
ExpandedSubBlockStart.gifContractedSubBlock.gif    
{
        h.innerHTML
="<br>未初始化!";
    }

    
else if(xmlhttp.readyState==1)
ExpandedSubBlockStart.gifContractedSubBlock.gif    
{
        h.innerHTML
="<br>正在加载……!";
    }

    
else if(xmlhttp.readyState==2)
ExpandedSubBlockStart.gifContractedSubBlock.gif    
{
        h.innerHTML
="<br>已经加载完成!";
    }

    
else if(xmlhttp.readyState==3)
ExpandedSubBlockStart.gifContractedSubBlock.gif    
{
        h.innerHTML
="<br>正在和服务器交互";
    }

    
else
ExpandedSubBlockStart.gifContractedSubBlock.gif    
{
        h.innerHTML
=xmlhttp.responseXML;
    }

    
}


// Get Request Data's length
function  getlen(str)
ExpandedBlockStart.gifContractedBlock.gif
{
var bytesCount=0;
for (var i = 0; i < str.length; i++)
ExpandedSubBlockStart.gifContractedSubBlock.gif
{
var c = str.charAt(i);
if (/^[\u0000-\u00ff]$/.test(c))   //匹配双字节
ExpandedSubBlockStart.gifContractedSubBlock.gif
      {
bytesCount 
+= 1;
}

else
ExpandedSubBlockStart.gifContractedSubBlock.gif
{
bytesCount 
+= 2;
}

}

return bytesCount;

 }
  

    
// Create XMLHttpRequest Object
   function  createXMLHttpRequest()
ExpandedBlockStart.gifContractedBlock.gif
{

    
if(window.ActiveXObject)
ExpandedSubBlockStart.gifContractedSubBlock.gif    
{
        xmlhttp
=new ActiveXObject("Microsoft.XMLHTTP");
    }

    
else if(window.XMLHttpRequst)
ExpandedSubBlockStart.gifContractedSubBlock.gif    
{
        xmlhttp
=new XMLHttpRequest();
    }

}
   

// send Request By HTTP POST

function  RequestByPost(method,variable,value,url,_Namespace)
ExpandedBlockStart.gifContractedBlock.gif
{
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++)
ExpandedSubBlockStart.gifContractedSubBlock.gif
{
    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!
ExpandedBlockStart.gifContractedBlock.gif
function  SayHello_onclick()  {
//alert(document.getElementById('YourName').value);
  RequestByPost("HelloWorld",new Array("msg"),new Array(document.getElementById('YourName').value),"WebService.asmx","localhost/");
}

// WeatherReport Test:
ExpandedBlockStart.gifContractedBlock.gif
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>

转载于:https://www.cnblogs.com/sixiweb/archive/2009/02/07/1385788.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值