Estoy usando JQuery para hacer una solicitud JSON de vuelta al servidor y parece que su serialización de parámetros está codificada a lo que PHP espera en lugar de ser de naturaleza genérica. Básicamente tengo un objeto que se parece a esto:serialización de parámetros de JQuery sin el corchete mess
{
foo: 1,
bar : [1, 3, 5]
}
Y serializa a:
foo=1&bar[]=1&bar[]=3&bar[]=5
¿Hay alguna forma de hacer que acaba de hacer?
foo=1&bar=1&bar=3&bar=5
Me parece que jQuery no debe ser tan ligada a lo que un puñado de marcos laterales de servidor esperar ya que una convención de nomenclatura. Si quisiera que mi param se llamara bar[]
podría nombrarlo fácilmente yo mismo si es lo que mi código de servidor espera.
Bueno, si su lenguaje del lado del servidor/marco no es compatible con matrices solo elemento de una cadena de consulta que es el problema de la derecha :) me hace volver a mi punto original que si su marco de trabajo del lado del servidor necesita corchetes, entonces debe cambiar sus nombres de param para que coincidan, no convertirlo en el predeterminado de una biblioteca front-end independiente del servidor. – mpeters
Supongo que su argumento sería más convincente si el método que defiende es, de algún modo, el "correcto". Aparentemente, no existe un RFC o estándar que cubra cómo se debe manejar la sintaxis de la matriz, y parece que las tecnologías más nuevas eligen ir con la opción más flexible.Usted dice que JQuery no debe estar ligado a una "convención de nomenclatura", pero claramente apoya ambos métodos, y podría fácilmente argumentar que la sintaxis sin paréntesis es la que realiza la vinculación. – zombat
existe la API jQuery que establece: jQuery serializa múltiples valores con la misma clave, es decir, {foo: ["bar1", "bar2"]} se convierte en '& foo = bar1 & foo = bar2'. observe cómo en el ejemplo proporcionado no aparecen corchetes ... –