Utilisez Javascript pour vous connecter au service Web WCF

Est-ce que quelqu'un sait comment utiliser Javascript pour vous connecter à un service Web WCF?

Tout ce dont j'ai besoin à ce stade, c'est de se connecter au service Web et d'être informé que la connexion a été réussie.

Est-ce que quelqu'un sait comment je peux le faire?

Si votre service WCF se trouve dans le même domaine, vous pouvez utiliser la fonction ci-dessous qui effectuerait l'appel

 function TestingWCFRestWithJson() { $.ajax({ url: "http://localhost/Service/JSONService.svc/GetDate", dataType: "json", type: "GET", success: function (data, textStatus, jqXHR) { // perform a success processing }, error: function (jqXHR, textStatus, errorThrown) { // show error to the user about the failure to invoke the service }, complete: function (jqXHR, textStatus) {//any process that needs to be done once the service call is compelte } }); } 

Si votre service WCF se trouve dans un autre domaine autre que votre domaine d'applications appelant, vous devriez effectuer un appel JSONP comme indiqué ci-dessous:

 function TestingWCFRestWithJsonp() { $.ajax({ url: "http://domain.com/Service/JSONPService.svc/GetDate", dataType: "jsonp", type: "GET", timeout: 10000, jsonpCallback: "MyCallback", success: function (data, textStatus, jqXHR) { }, error: function (jqXHR, textStatus, errorThrown) { }, complete: function (jqXHR, textStatus) { } }); } function MyCallback(data) { alert(data); } 

Lorsqu'un appel JSONP est effectué à l'aide de $ .ajax de JQuery, les méthodes de vérification complète / succès / erreur ne sont pas déclenchées plutôt qu'une méthode de rappel, comme indiqué, est déclenché, ce qui doit être traité par le service WCF. Il existe un attribut "crossDomainScriptAccessEnabled" fourni par le cadre WCF qui identifie si la requête est un appel JSONP et écrit le contenu dans le flux pour appeler la fonction de rappel avec des données. Ceci est disponible sur l'élément de liaison comme indiqué ci-dessous:

 <webHttpBinding> <binding name="defaultRestJsonp" crossDomainScriptAccessEnabled="true"> <readerQuotas maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxDepth="64" maxNameTableCharCount="2147483647" /> <security mode="None" /> </binding> </webHttpBinding> 

Étant donné que vous avez correctement écrit / configuré votre service / WCF, vous devriez pouvoir charger l'url suivante:

 http://somedomain.com/somewcfservice.svc/jsdebug 

Et appeler les méthodes exposées.