2

私はこのようなオブジェクトを持っています:

var queryObject= {
      name: 'Shwetanka',
      subjects: ['Mathematics', 'Physics', 'Computers'],
      stream: 'science'
    };

これを使用してクエリ文字列を作成すると、$.param(queryObject)これがクエリ文字列として取得されます。

name=Shwetanka&subjects%5B%5D=Mathematics&subjects%5B%5D=Physics&subjects%5B%5D=Computers&stream=science

期待される:name=Shwetanka&subjects=Mathematics&subjects=Physics&subjects=Computers&stream=science

[]同じ名前のパラメータのクエリ文字列にメソッドが追加されないようにするにはどうすればよいですか。バックエンドでは、struts2を使用してパラメータを読み取ります。

4

2 に答える 2

4

私は解決策を見つけました。に「traditional=true」を渡すだけ$.param(queryObject, true)です。これにより、必要なクエリ文字列が生成されます。

于 2012-09-24T11:19:33.363 に答える
0

フォームに同じ名前のフィールドがありGET/POST、それが 経由で送信されると、同じ名前のパラメーターの配列として送信されるようにバインドされます。そして、サーバーはそのような値を期待しています。そのため、どうにかしてそれを削除して[]も、配列ではなくなり、サーバーは値を 1 つだけ取得します。jQuery の param メソッドは、同じことを念頭に置いて設計されています。http://api.jquery.com/jQuery.param/で例を確認してください。

于 2012-09-24T10:23:53.577 に答える