Maison  >  Article  >  interface Web  >  jquery ajax ne parvient pas à transmettre le tableau en arrière-plan

jquery ajax ne parvient pas à transmettre le tableau en arrière-plan

一个新手
一个新手original
2017-09-18 09:17:361894parcourir

Au début, je pensais que traditional:true était superflu, mais plus tard, quand je n'ai pas utilisé traditional, j'ai découvert que la valeur de selectUsers ne pouvait pas être obtenue en arrière-plan, il est donc certain que la valeur par défaut de traditionnel est faux.

Lorsque le paramètre soumis est un tableau ({selectUsers:[value,value,value]}),

S'il est faux, il sera soumis lorsque "selectUsers[]=value&selectUsers[]=value"

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

Si défini sur true, la soumission sera "selectUsers=value&selectUsers=value"

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

De cette façon, String[] ids=request peut être utilisé en arrière-plan. getParameterValues("selectUsers"); Obtient la valeur.
La documentation officielle l'explique comme suit :
traditionnel
Type : Booléen
Si vous souhaitez sérialiser les données de manière traditionnelle, définissez-le sur true.

Définissez ceci sur true si vous souhaitez utiliser le style traditionnel de sérialisation des paramètres

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;

                }
            });

En coulisses

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn