64 votes

Comment utiliser jQuery pour appeler un service Web asp.net?

J'essaie d'utiliser jQuery pour obtenir des données à partir d'un service Web ASP.NET (SharePoint Server 2007 lists.asmx), mais tout appel à un service Web aidera vraiment dans une première étape dans cette direction.

76voto

Bobby Borszich Points 4424

J'utilise cette méthode comme un wrapper pour pouvoir envoyer des paramètres. L'utilisation des variables dans la partie supérieure de la méthode permet également de la minimiser à un taux plus élevé et permet une certaine réutilisation du code si vous effectuez plusieurs appels similaires.

 function InfoByDate(sDate, eDate){
    var divToBeWorkedOn = "#AjaxPlaceHolder";
    var webMethod = "http://MyWebService/Web.asmx/GetInfoByDates";
    var parameters = "{'sDate':'" + sDate + "','eDate':'" + eDate + "'}";

    $.ajax({
        type: "POST",
        url: webMethod,
        data: parameters,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(msg) {    
            $(divToBeWorkedOn).html(msg.d);
        },
        error: function(e){
            $(divToBeWorkedOn).html("Unavailable");              
        }
    });
}
 

J'espère que cela pourra aider.

Veuillez noter que cela nécessite que le framework 3.5 expose les méthodes Web JSON pouvant être utilisées de cette manière.

11voto

Nick Berardi Points 31361

Le problème avec @mnour source est que jQuery ne sera pas en mesure de désérialiser le fichier WSDL renvoyé. Vous devez vous assurer qu'il est désérialisé en JSON ou XML.

9voto

mohammedn Points 1821

Voici un exemple pour appeler votre service Web à l'aide de jQuery.get:

 $.get("http://domain.com/webservice.asmx", { name: "John", time: "2pm" },
  function(data){
    alert("Data Loaded: " + data);
  });
 

Dans l'exemple ci-dessus, nous appelons "webservice.asmx" en transmettant deux paramètres: nom et heure. Ensuite, obtenir la sortie de service dans la fonction de rappel.

3voto

Herb Caudill Points 16170

Je ne connais pas ce service Web SharePoint spécifique, mais vous pouvez décorer une méthode de page ou un service Web avec <WebMethod()> (en vb.net) pour vous assurer qu'il se sérialise au format JSON. Vous pouvez probablement envelopper la méthode utilisée par webservice.asmx en interne, dans votre propre service Web.

Dave Ward a une bonne solution à ce sujet.

1voto

Brandon Joyce Points 2052

J'ai ici un bon exemple d'utilisation de l'appel JQuery AJAX avec les services Web asmx ... http://sonerdy.com/JQuery-AJAX-and-ASMX

Il existe une ligne de code à dégager pour lui permettre de renvoyer JSON.

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