2010-04-23 5 views
3

je le tableau suivant:jQuery.Ajax fait la mauvaise demande avec les données du tableau

var idParam = ["1","2","3"]; 

Je veux envoyer ces données comme demande à l'aide jQuery.ajax, ce que je fais:

 $.ajax({ 
     type: "GET", 
     url: "Services/GetInfo.ashx", 
     data: { "id": idParam }, 
     contentType: "application/text", 
     dataType: "json", 
     success: function(result) 
     { 
... 
     }, 
     error: function(XMLHttpRequest, textStatus, errorThrown) 
     { 
      ... 
     } 
}); 

Mais comme résultat, j'ai la chaîne laide suivante: ?id[]=1&id[]=2&id[]=4 (en fait c'est beaucoup plus laid: id%5B%5D=1&id%5B%5D=2&id%5B%5D=4). Que faire pour obtenir la chaîne normale comme: id=1&id=2&id=4 ?? Merci

+0

ce n'est pas laid ... il devrait être comme ça ... si 'id = 1 & id = 2 & id = 4', cela écraserait tous les ID à 4 ... comme vous êtes juste de passage id = 4 – Reigel

+1

@ Reigel - Cela dépend entièrement de la façon dont votre serveur interprète la requête 'GET'. –

+1

En fait, pas nécessairement. Les RFC pertinentes n'interdisent pas que plusieurs clés aient le même nom; Cela dépend vraiment du processeur backend. Dans cet exemple, ASP vous donnerait un tableau - 'id = [1,2,4]'. Voir http://stackoverflow.com/questions/1746507/authoritative-position-of-duplicate-http-get-query-keys – josh3736

Répondre

7

Je suppose que c'est avec jQuery 1.4 - Vous devez utiliser le paramètre traditional: true pour $.ajax()

Ou vous pouvez le régler globalement: (from $.param() docs)

À partir de jQuery 1.4, La méthode $.param() sérialise récursivement les objets profonds pour s'adapter aux langages de script et aux frameworks modernes tels que PHP et Ruby on Rails. Vous pouvez désactiver cette fonctionnalité globalement en définissant jQuery.ajaxSettings.traditional = true;.

+0

Merci, ça marche! – mimic

+0

Malheureusement, cela ne fonctionne plus à partir de jQuery 1.8. Aucune suggestion? Vous pouvez répondre ici aussi: http://stackoverflow.com/questions/26775682/jquery-ajaxsettings-traditional-no-loger-works –

Questions connexes