0 votes

Comment appeler un service web en javascript pour firefox 3.0

Je rencontre un problème pour appeler des services web .Net avec un client Firefox. Un exemple simple me suffira.

Le code côté serveur est le suivant :

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

Le code côté client en .html :

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

Le code côté client en .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 s'exécute 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 que je pourrais utiliser à la place du fichier htc...

1voto

jerjer Points 5585

Si vous envisagez de consommer votre service Web dans NET, je vous suggère d'utiliser ScriptService, L'API client est plus facile et devrait fonctionner sur la plupart des navigateurs, voir ci-dessous pour 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
imprimer

Code .js côté client:

    function test1(){
         XXX.Services.HelloWorld(function(result){
            alert(result);//faire quelque chose avec le résultat
         });

         XXX.Services.Greet("John Cane",function(result){
            alert(result);
         });
    }

0voto

DavidGouge Points 2761

Vous pourriez utiliser les appels ajax jQuery, ils facilitent l'appel des services web. Voir ici: http://encosia.com/2008/03/27/using-jquery-to-consume-aspnet-json-web-services/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X