2009-02-02 8 views
13

J'essaye d'exécuter un webservice asp.net en utilisant jquery. Quand je passe un seul paramètre d'entrée, il fonctionne très bien:Comment passer plusieurs paramètres au format json à un service Web en utilisant jquery?

$.ajax({ 
    type: "POST", 
    url: url, 
    data: "{'Id1':'2'}", 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: callback 
}); 

mais si je tente de transmettre plusieurs paramètres, il ne

$.ajax({ 
    type: "POST", 
    url: url, 
    data: "{'Id1':'2'},{'Id2':'2'}", 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: callback 
});  

Bien sûr, lorsque je tente de passer 2 paramètres d'entrée, je modifie la méthode web pour qu'il prenne 2 paramètres d'entrée.

Des idées?

+0

Nous devons voir le code ASP qui analyse le paramètre objet JSON POST. –

+1

Modifier votre URL url = url + '? Param1 =' + valeur1 + '&& param2 =' + valeur2; cela pourrait vous servir –

Répondre

34

trouvé la solution:

Il devrait être:

"{'Id1':'2','Id2':'2'}" 

et non

"{'Id1':'2'},{'Id2':'2'}" 
5

Ceci est un coup dans le noir, mais peut-être avez-vous besoin d'envelopper vos arguments JSON; comme dire quelque chose comme ceci:

data: "{'Ids':[{'Id1':'2'},{'Id2':'2'}]}" 

Assurez-vous que votre JSON est correctement formé?

2

Je pense que la meilleure façon est:

data: "{'Ids':['2','2']}" 

Pour lire ces valeurs Ids [0], Ids [1].

3

i ont la même question et résolu par

data: "Id1=" + id1 + "&Id2=" + id2 
Questions connexes