我正在使用JQuery向服務器發出JSON請求,似乎它的參數序列化是硬編碼到PHP所期望的,而不是通用的。基本上我有一個對象,看起來像這樣:沒有括號混亂的JQuery參數序列化
{
foo: 1,
bar : [1, 3, 5]
}
它它序列化爲:
foo=1&bar[]=1&bar[]=3&bar[]=5
反正讓它只是做?
foo=1&bar=1&bar=3&bar=5
這在我看來,jQuery的不應該如此依賴於什麼服務器端框架的少數期望的命名約定。如果我想讓我的參數名爲bar[]
,我可以很容易地將它命名爲我自己,如果這是我的服務器端代碼所期望的。
好吧,如果你的服務器端語言/框架不會從查詢字符串,它是你的問題支持單元素數組吧:) 讓我回到我原來的觀點如果您的服務器端框架需要括號,那麼您應該更改您的參數名稱以匹配,而不是使其成爲服務器不可知的前端庫的默認值。 – mpeters 2010-03-31 02:28:08
如果你所倡導的方法在某種程度上是「正確」的,那麼我想你的論點會更引人注目。顯然沒有RFC或標準涵蓋了應該如何處理數組語法,而且看起來像更新的技術正在選擇更靈活的選項。你說JQuery不應該與「命名約定」綁定,但它明確支持這兩種方法,並且你可以很容易地認爲非括號語法就是綁定的語法。 – zombat 2010-03-31 03:36:47
有jQuery API指出:jQuery使用相同的鍵序列化多個值,即{foo:[「bar1」,「bar2」]}變爲'&foo = bar1&foo = bar2'。請注意,在提供的示例中,沒有出現括號... – 2010-04-14 21:56:20