처음에는 Traditional:true가 없어도 된다고 생각했는데, 나중에 Traditional을 사용하지 않게 되면서 백그라운드에서 selectUsers의 값을 얻을 수 없다는 걸 발견했기 때문에 Traditional의 기본값은 false인 것이 확실합니다.
제출된 매개변수가 Array({selectUsers:[value,value,value]})인 경우,
false인 경우 제출 시 "selectUsers[]=value&selectUsers[]=value"가 됩니다. ㅋㅋㅋ
]0 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ | |||||||||||||||
ckee | o ㅋㅋㅋ ] | ||||||||||||||
0x1 | |||||||||||||||
1y1 | |||||||||||||||
2 z1 | |||||||||||||||
m2[ckee] o1 |
name | nihao |
목록 제출 시 "selectUsers=value&selectUsers=value"가 됩니다. | [ 3] |
0 | x |
1 | y |
2 | z |
ckee | o |
m2 | [객체+객체] |
이러한 방식으로 String[] ids=request를 사용할 수 있습니다. 백그라운드에서 사용됩니다. .getParameterValues("selectUsers"); 값을 가져옵니다.
공식 문서에서는 다음과 같이 설명합니다.
traditional
Type: Boolean
기존 방식으로 데이터를 직렬화하려면 true로 설정하세요.
전통적인 스타일의 매개변수 직렬화를 사용하려면 이를 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!