Heim  >  Artikel  >  Web-Frontend  >  jquery ajax kann das Array nicht an den Hintergrund übergeben

jquery ajax kann das Array nicht an den Hintergrund übergeben

一个新手
一个新手Original
2017-09-18 09:17:361894Durchsuche

Zuerst dachte ich, dass „traditional:true“ entbehrlich sei, aber später, als ich „traditionell“ nicht verwendete, stellte ich fest, dass der Wert von „selectUsers“ nicht im Hintergrund abgerufen werden konnte, daher ist es sicher, dass der Standardwert von traditionell ist falsch.

Wenn der übermittelte Parameter ein Array ist ({selectUsers:[value,value,value]}),

Wenn es falsch ist, wird es übermittelt, wenn „selectUsers[]=value&selectUsers[]=value“ ist

name nihao
list[] [3]
0 x
1 y
2 z
ckee o
m2[name] zzzzz
m2[list][] [3]
0 x1
1 y1
2 z1
m2[ckee] o1

Wenn auf „true“ gesetzt, lautet die Übermittlung „selectUsers=value&selectUsers=value“

name nihao
list [3]
0 x
1 y
2 z
ckee o
m2 [object+Object]

Auf diese Weise kann String[] ids=request verwendet werden im Hintergrund. getParameterValues("selectUsers"); Ruft den Wert ab.
Die offizielle Dokumentation erklärt es wie folgt:
traditionell
Typ: Boolean
Wenn Sie Daten auf traditionelle Weise serialisieren möchten, dann setzen Sie es auf true.

Setzen Sie dies auf true, wenn Sie den traditionellen Stil der Param-Serialisierung verwenden möchten

Front-End-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;

                }
            });

Backstage

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

Das obige ist der detaillierte Inhalt vonjquery ajax kann das Array nicht an den Hintergrund übergeben. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn