Sto usando JQuery per fare una richiesta JSON al server e sembra che la serializzazione dei parametri sia codificata su ciò che PHP si aspetta invece di essere di natura generica. Fondamentalmente ho un oggetto che assomiglia a questo:Serializzazione dei parametri JQuery senza la mensola della staffetta
{
foo: 1,
bar : [1, 3, 5]
}
Ed serializza a:
foo=1&bar[]=1&bar[]=3&bar[]=5
Esiste un modo per farlo basta fare?
foo=1&bar=1&bar=3&bar=5
Mi sembra che jQuery non dovrebbe essere così legata a quello che una manciata di quadri lato server si aspettano da una convenzione di denominazione. Se volessi che il mio parametro venisse chiamato bar[]
, potrei chiamarlo facilmente se è quello che si aspetta il mio codice lato server.
Beh, se la vostra lingua lato server/quadro non supporta gli array di elementi singoli da una stringa di query che è il tuo problema giusto :) mi riporta al punto di partenza che se il tuo framework lato server ha bisogno di parentesi, allora dovresti cambiare i tuoi nomi param in modo che corrispondano, non renderlo predefinito di una libreria front-end agnostica del server. – mpeters
Immagino che il tuo argomento sarebbe più convincente se il metodo che stai sostenendo fosse in qualche modo "corretto". Apparentemente non esiste una RFC o uno standard che copra come dovrebbe essere gestita la sintassi dell'array, e sembra che le nuove tecnologie scelgano di optare per l'opzione più flessibile.Tu dici che JQuery non dovrebbe essere legato a una "convenzione di denominazione", ma supporta chiaramente entrambi i metodi, e si potrebbe facilmente argomentare che la sintassi senza parentesi quadra è quella che sta legando. – zombat
c'è l'API jQuery che afferma: jQuery serializza più valori con la stessa chiave cioè {foo: ["bar1", "bar2"]} diventa '& foo = bar1 & foo = bar2'. nota come nell'esempio fornito non appare alcuna parentesi ... –