29

フォームをコントローラーに送信して実験しています。jQueryのドキュメントには.serializeArray()、json配列を送信し.serialize()、クエリ文字列を作成する必要があると書かれています。

ただし、IE9 F12 モードで調べてみると、どちらの場合もクエリ文字列のように見えます。どの電話をかけても...

私は何が欠けていますか?

4

1 に答える 1

43

serializeArray配列を作成します( 「json配列」ではありません-そのようなものはありません); でこれを自分でテストできますconsole.log($("#myform").serializeArray())。一方、serializeHTTP 要求の一部となるクエリ文字列を作成します。どちらの表現も、適切なコードを使用してあいまいさなく一方を他方に変換できるという意味で同等です。

両方のバージョンが利用可能である理由はserialize、HTTP 要求を作成したい (結果をクエリ文字列に入れるだけ) だけのserializeArray場合はより便利であり、結果を自分で処理したい場合は の方が便利だからです。

jQuery の AJAX メソッドは、パラメーターの型を検出し、まだ型でない場合はそれをクエリ文字列に変換するため、どちらを指定しても気にしません。そのため、オブザーバーの外部で要求が行われる時点までに、何があったかを知ることができません。パラメータの元の形式。

于 2012-05-03T11:37:14.243 に答える