web-dev-qa-db-fra.com

Comment utiliser jQuery pour appeler un service Web ASP.NET?

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

63
Simara

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 ratio plus élevé et permet de réutiliser 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 ça aide.

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

75
Bobby Borszich

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: name et time. Ensuite, obtenir la sortie de service dans la fonction de rappel.

9
mohammedn

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 ne procédure pas à pas à ce sujet.

3
Herb Caudill
$.ajax({
 type: 'POST',
 url: 'data.asmx/getText',
 data: {'argInput' : 'input arg(s)'},
 complete: function(xData, status) {
 $('#txt').html($(xData.responseXML).text()); // result
 }
});
2
Kaveh

J'ai un exemple décent dans jQuery AJAX et ASMX sur l'utilisation de jQuery AJAX appel avec les services Web asmx ...

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

1
Brandon Joyce

SPServices est une bibliothèque jQuery qui résume les services Web de SharePoint et facilite leur utilisation.

C'est certifié pour SharePoint 2007

La liste des opérations prises en charge par Lists.asmx est disponible ici

Exemple

Dans cet exemple, nous récupérons tous les éléments de la liste Annonces et affichons les titres dans une liste à puces dans la division tasksUL:

<script type="text/javascript" src="filelink/jquery-1.6.1.min.js"></script>
<script type="text/javascript" src="filelink/jquery.SPServices-0.6.2.min.js"></script>
<script language="javascript" type="text/javascript">

$(document).ready(function() {
  $().SPServices({
    operation: "GetListItems",
    async: false,
    listName: "Announcements",
    CAMLViewFields: "<ViewFields><FieldRef Name='Title' /></ViewFields>",
    completefunc: function (xData, Status) {
      $(xData.responseXML).SPFilterNode("z:row").each(function() {
        var liHtml = "<li>" + $(this).attr("ows_Title") + "</li>";
        $("#tasksUL").append(liHtml);
      });
    }
  });
});
</script>
<ul id="tasksUL"/>
1

J'utilise assez souvent ajaxpro avec jQuery. ajaxpro me permet d'appeler des fonctions .NET à partir de JavaScript et j'utilise jQuery pour le reste.

0
Antony Delaney