Maison > Article > interface Web > jquery ajax ne parvient pas à transmettre le tableau en arrière-plan
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!