Javascript+xmlhttp调用Webservice(一)。

原文: http://www.cnblogs.com/netboy/archive/2006/02/18/333260.html
1.  创建webservice.
using  System;
using  System.Web;
using  System.Web.Services;
using  System.Web.Services.Protocols;

[WebService(Namespace 
=   " http://tempuri.org/ " )]
[WebServiceBinding(ConformsTo 
=  WsiProfiles.BasicProfile1_1)]
public   class  Service : System.Web.Services.WebService
{
    
public  Service () {

        
// Uncomment the following line if using designed components 
        
// InitializeComponent(); 
    }

    [WebMethod]
    
public   string  SayHelloTo( string  Name) {
        
return   " Hello  " + Name;
    }
    
}


2. js调用webservice+xmlhttp的实现部分。

< html >
< title >
Call webservice with javascript and xmlhttp.
</ title >
< body >
< script  language ="javascript" >  

// Test function with get method.
function  RequestByGet(data){ 

var  xmlhttp  =   new  ActiveXObject( " Microsoft.XMLHTTP " ); 
// Webservice location.
var  URL = " http://localhost:1323/WebSite6/Service.asmx/SayHelloTo?Name=Zach " ;
xmlhttp.Open(
" GET " ,URL,  false ); 
xmlhttp.SetRequestHeader (
" Content-Type " , " text/xml; charset=utf-8 " ); 
xmlhttp.SetRequestHeader (
" SOAPAction " , " http://tempuri.org/SayHelloTo " ); 
xmlhttp.Send(data); 
var  result  =  xmlhttp.status; 
// OK
if (result == 200 ) { 
document.write(xmlhttp.responseText); 

xmlhttp 
=   null


// Test function with post method
function  RequestByPost(value)
{
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  +   ' <SayHelloTo xmlns="http://tempuri.org/"> '
data 
=  data  +   ' <Name> ' + value + ' </Name> '
data 
=  data  +   ' </SayHelloTo> '
data 
=  data  +   ' </soap:Body> '
data 
=  data  +   ' </soap:Envelope> '

var  xmlhttp  =   new  ActiveXObject( " Microsoft.XMLHTTP " ); 
var  URL = " http://localhost:1323/WebSite6/Service.asmx " ;
xmlhttp.Open(
" POST " ,URL,  false ); 
xmlhttp.SetRequestHeader (
" Content-Type " , " text/xml; charset=gb2312 " ); 
xmlhttp.SetRequestHeader (
" SOAPAction " , " http://tempuri.org/SayHelloTo " ); 
xmlhttp.Send(data); 
document.write( xmlhttp.responseText); 

}

</ Script >

< input  type ="button"  value ="CallWebserviceByGet"  onClick ="RequestByGet(null)" >
< input  type ="button"  value ="CallWebserviceByPost"  onClick ="RequestByPost('Zach')" >

</ body >
</ html >


对于使用post方法需要发送的那堆东东可以在webservice的测试页面中找到,自己拼凑加上对应的参数就可以。

我发现用post方法的时候响应很慢,是因为用Post方法时发送的数据多的原因吗?

你可能感兴趣的:(JavaScript)