J'essaie de poster des paramètres simples à un service Web .asmx. Voici ma définition de service Web P>
Je reçois l'erreur suivante: le format de demande est invalide: application / json; Charset = utf-8. em> strong>
Ce dont j'ai vraiment besoin, c'est de pouvoir passer un objet complexe, mais je ne peux pas passer à faire une demande de post avec le type de contenu JSON. function JsonTest2() {
$.ajax({
type: 'POST',
url: "http://localhost/WebServices/MyTest.asmx/JsonTest2",
data: "{myparm1:105,myparm2:23}",
contentType: 'application/json; charset=UTF-8',
dataType: 'json',
async: false,
success: function (msg) {
alert(msg);
},
error: function (msg) {
alert('failure');
alert(msg);
}
});
}
3 Réponses :
Assurez-vous que votre classe de service ASMX est décorée avec l'attribut [scriptservice] code>. p>
Ce serait bien si vous mentionnez la version minimale requise pour cela.
Vous devez utiliser comme au lieu de p> en cas de paramètres d'entrée plus complexes, je vous recommande d'utiliser dans la dernière version de data code> la valeur formatée en tant que données JSON correctes:
json.stringify code> FonctionFROM JSON2.JS (voir Cette réponse par exemple): p>
$. AJAX CODE> Utilisation Le
MyValue1 CODE> et
MYVALUE2 CODE> peut être des structures complexes (objets contenant des propriétés) ou des tableaux ayant même une autre structure complexe ou des tableaux comme propriétés. P> p>
Assurez-vous que l'URL contient le numéro de port lors de l'utilisation de Localhost.
quelle version asp.net utilisez-vous? Ne devrait-il pas y avoir msg.d dans le rappel du succès?