2009-10-15 4 views
0

J'ai un problème avec l'appel des services web .Net avec un client Firefox . Un exemple simple me suffira.Comment appeler webservice en Javascript pour Firefox 3.0

code côté serveur est comme ceci:

[WebService(Namespace = "http://tempuri.org/")] 
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
[ToolboxItem(false)] 
public class Service1 : System.Web.Services.WebService 
{ 
[WebMethod] 
public string HelloWorld() 
{ 
return "Hello World"; 
} 
} 

côté client Code .html:

Hello World Denemesi<br /> 
type="text" disabled="disabled" /></td> 
value="Print"   onclick="print()"> </td> 

code du côté client:

var callObject; 
function init(){ 
service.useService("Service1.asmx?WSDL","Service"); 
callObject = service.createCallOptions(); 
callObject.async = false; 

} 
function print(){ 
callObject.funcName = "HelloWorld"; 
var oResult = service.Service.callService(callObject); 
if(!oResult.error) 
{ 
edtHelloWorld.value = oResult.value; 
} 
} 

Ce service web fonctionne sur IE mais ne fonctionne pas à firefox car webservice.htc (fichier de comportement) ne fonctionne pas pour firefox. J'ai besoin d'un javascript ou quelque chose comme ça que je peux utiliser à la place du fichier htc ...

Répondre

1

Si vous envisagez de consommer votre service Web dans NET, je suggère d'utiliser ScriptService, L'API client est plus facile et devrait fonctionner sur la plupart des navigateurs, voir ci-dessous pour un échantillon:

namespace XXX.Services 
{ 
    [System.Web.Script.Services.ScriptService()] 
    [WebService(Namespace = "http://tempuri.org/")] 
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
    [ToolboxItem(false)] 
    public class Service1 : System.Web.Services.WebService 
    { 
     [WebMethod] public string HelloWorld() 
     { 
      return "Hello World"; 
     } 

     [WebMethod] public string Greet(string name) 
     { 
      return "Hello " + name; 
     } 
    } 
} 

code html côté client:

Hello World Denemesi 
<button onclick="test1()">print</button> 

code du côté client:

<script> 
    function test1(){ 
     XXX.Services.HelloWorld(function(result){ 
      alert(result);//do something with the result 
     }); 

     XXX.Services.Greet("John Cane",function(result){ 
      alert(result); 
     }); 
    } 
</script> 
Questions connexes