0 votes

$.ajax et webmethod/pagemethods

Je suis en train d'essayer d'appeler une méthode de page qui n'a pas de paramètres, et je n'arrive pas à le faire fonctionner.

Si j'ai un seul paramètre dans la méthode de page, ça marche bien.

$.ajax({
  type: "POST",
  url: "Default.aspx/getLastCallData",
  contentType: "application/json; charset=utf-8",
  dataType: "json",
  success: function(msg) {
    alert(msg.d);
  },
  error: function(XMLHttpRequest, textStatus, errorThrown) {
    alert('Impossible d'obtenir les données de l'appel');
  }
});

Des idées.

3voto

Tim Banks Points 4053

Étant donné que vous ne transmettez aucune donnée, vous devez quand même ajouter le paramètre de données et transmettre un objet JSON vide.

En envoyant un objet JSON vide, jQuery enverra correctement le type de contenu que vous avez défini dans l'appel $.ajax. C'est une bizarrerie étrange de jQuery qui n'a pas vraiment été expliquée.

Ajoutez le paramètre suivant :

data: "{}"

Ainsi, votre appel devrait ressembler à ceci :

$.ajax({
  type: "POST",
  url: "Default.aspx/getLastCallData",
  data: "{}",
  contentType: "application/json; charset=utf-8",
  dataType: "json",
  success: function(msg) {
    alert(msg.d);
  },
  error: function(XMLHttpRequest, textStatus, errorThrown) {
    alert('Impossible d'obtenir les données de l'appel');
  }
});

0voto

peirix Points 10728

Avez-vous essayé de passer de POST à GET? Je ne sais pas si cela fait une différence, mais comme vous n'envoyez pas de données, vous ne publiez pas vraiment quelque chose, vous obtenez simplement des données...il pourrait y avoir quelque chose d'étrange qui se passe là-bas.

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