これはちょっとした暴言ですが、非常に深刻な質問でもあります。jQuery は ajax パラメータのシリアル化を次のように変更しました。
jQuery 1.4 では、PHP で普及し、Ruby on Rails でサポートされているアプローチを使用して、jQuery.param でネストされたパラメーターのシリアル化のサポートが追加されています。たとえば、{foo: ["bar", "baz"]} は「foo[]=bar&foo[]=baz」としてシリアル化されます。
あなたはそれをキャッチしましたか?
パラメータを呼び出しますfoo
。foo の値が配列の場合、jQuery はその名前をfoo[]
背後に変更します。その理由は、一部の PHP 愛好家や Rubyist は、サード パーティの API が名前を変更することを期待しているためです。
古風な言い方をしますが、キーx
で何かをマップに入れると、 の下に値が見つかると思いますx
。または、少なくともオプションのオーバーライドを使用して、これをデフォルトの動作にします。
ドキュメントでさえ私に同意します:
値が配列の場合、jQuery は複数の値を同じキーでシリアル化します。つまり、{foo:["bar1", "bar2"]} は '&foo=bar1&foo=bar2' になります。
これは単に jQuery チームの不適切な判断によるものだと考えるのは正しいでしょうか?