需求:再进行ajax进行请求post请求时,需要以一个固定的key向后台发送一个数组。
此时这样进行请求的时候 ,后台接收不到我的这个数组
function ajax(){
let data = {
arr:[1,2,3]
}
$.ajax({
type: "post",
url: url + "/sss/", //自己接口的地址
dataType: "json",
async: false, //是否异步请求
data:data,
success: function(res) {
console.log(res)
},
error: function(errorMsg) {
console.log(url + "出现错误:", errorMsg);
}
});
}
ajax();
原因 :再浏览器的Network种查看参数的变量种多出来一个[]
- arr[]:1
- arr[]:2
- arr[]:3
解决方案(traditional)
在ajax代码参数中增加traditional(防止深度序列化)并设置为true
function ajax(){
let data = {
arr:[1,2,3]
}
$.ajax({
type: "post",
url: url + "/sss/", //自己接口的地址
dataType: "json",
async: false, //是否异步请求
data:data,
traditional: true,//这里设置为true
success: function(res) {
console.log(res)
},
error: function(errorMsg) {
console.log(url + "出现错误:", errorMsg);
}
});
}
ajax();
这样传输的数据就变为了:
- arr:1
- arr:2
- arr:3