Comment appeler le service Web en Javascript pour Firefox 3.0

J'ai un problème avec l'appel. Services Web en ligne avec un client Firefox. Un simple exemple suffira pour moi.

Le 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"; } } 

Code client .html:

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

Code client .js:

 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 sur Firefox, car webservice.htc (fichier de comportement) ne fonctionne pas pour Firefox. J'ai besoin d'un javascript ou quelque chose comme ça avec lequel je peux utiliser au lieu du fichier htc …

Si vous envisagez de consommer votre service Web dans NET, je suggérerais l'utilisation de ScriptService, l'API client est plus facile et devrait fonctionner sur la plupart des navigateurs, voir ci-dessous un exemple:

 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 client .js:

 <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> 

Vous pouvez utiliser les appels jquery ajax, ils rendent les services Web appelants faciles. Voir ici: http://encosia.com/2008/03/27/using-jquery-to-consume-aspnet-json-web-services/