Che cos’è lo “stile tradizionale di serializzazione param” in JQuery

Sai qual è lo “stile tradizionale della serializzazione param” per jQuery.ajax () come menzionato in http://api.jquery.com/jQuery.ajax/ ?

Puoi dare qualche introduzione?

Grazie

jQuery.param() un’occhiata alla documentazione di jQuery.param() :

A partire da jQuery 1.4, il metodo $.param() serializza in modo ricorsivo oggetti profondi per adattarsi ai moderni linguaggi di scripting e framework come PHP e Ruby on Rails. È ansible disabilitare questa funzionalità globalmente impostando jQuery.ajaxSettings.traditional = true; .

Dato

 var p = {foo: [1,2,3], bar: 42}; 

l’impostazione traditional true genera

 foo=1&foo=2&foo=3&bar=42 

Mentre ad esempio Python può gestire questi parametri, cioè genera una lista per foo , PHP considererà solo l’ultimo parametro foo .

Ma ora, per impostazione predefinita, il risultato della serializzazione è (in realtà è codificato URI)

 foo[]=1&foo[]=2&foo[]=3&bar=42 

che può essere gestito meglio, come detto, da PHP e RoR.


O forse ancora più interessante è questo. Dato:

 var p = {foo: {1: [3,4], 2:2,3:3}, bar: 42}; 

prodotti tradizionali:

 foo=[object Object]&bar=42 

che chiaramente non è utile rispetto al “nuovo” modo:

 foo[1][]=3&foo[1][]=4&foo[2]=2&foo[3]=3&bar=42