ホームページ >ウェブフロントエンド >jsチュートリアル >jquery ajaxが配列をバックグラウンドに渡すことができません

jquery ajaxが配列をバックグラウンドに渡すことができません

一个新手
一个新手オリジナル
2017-09-18 09:17:361948ブラウズ

最初は traditional:true は不要かと思ったのですが、後で traditional を使わないようにしたら、バックグラウンドで selectUsers の値が取得できないことが分かりましたので、 traditional のデフォルト値が false であるのは確かです。

送信されたパラメータがArray({selectUsers:[value,value,value]})の場合、

falseの場合は送信時に「selectUsers[]=value&selectUsers[]=value」となります

名前 ニーハオ
リスト[] [3] ]
0 x
1 y
2 z
ckee o
m2[名前] zzzzz
m2[リスト][] [3] ]
0 x1
1 y1
2 z1
m2[ckee] o1

trueに設定すると、送信時に「selectUsers=value&selectUsers=value」になります

name nihao
リスト [ 3]
0 x
1 y
2 z
ckee o
m2 [オブジェクト+オブジェクト]

このようにして、String[] ids=request は次のことができますバックグラウンドで使用されます。 .getParameterValues("selectUsers"); 値を取得します。 公式ドキュメントでは次のように説明されています:
従来型
型: Boolean
従来の方法でデータをシリアル化する場合は、true に設定します。

従来のスタイルの param シリアル化を使用したい場合は、これを true に設定してください

frontend js

 var obj2 = {
                "name": "nihao",
                "list": ["x", "y", "z"],
                "ckee": "o",
                "m2": {
                    "name": "zzzzz",
                    "list": ["x1", "y1", "z1"],
                    "ckee": "o1"
                }
            }

            $.ajax({
                type: "POST",
                url: "/Home/SubmitForm",
                data: obj2,
                dataType: "text",
                async: false,
                traditional: true,
                success: function (data) {
                    var rows = data.rows;

                }
            });
            $.ajax({
                type: "POST",
                url: "/Home/SubmitForm",
                data: obj2,
                dataType: "text",
                async: false,
                traditional: false,
                success: function (data) {
                    var rows = data.rows;

                }
            });

backend

        [HttpPost]
        public string SubmitForm(mymode request)
        {
            if (request != null)
            {
                // 
            }
            return "操作成功。";
        }

以上がjquery ajaxが配列をバックグラウンドに渡すことができませんの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。