ajax数据请求传一个数组对象类型的值不成功的理解!
遇到这个问题的时候也找了好多网络资源,网上大多说的是传数组有两种方式:一是拼接字符串;二是请求是使用传统模式traditional:true;
引自(https://blog.csdn.net/CrazyLai1996/article/details/76165971)(https://blog.csdn.net/u011734144/article/details/53836906/)
大多数是采用第二种方式的答案,但是对于我的请求采用此方法没有解决。
最后通过415报错找到contentType:application/x-www-form-urlencoded不允许;
最后通过查找资料了解到:
contentType 主要设置你发送给服务器的格式,dataType设置你收到服务器数据的格式。
##而contentType默认格式就是application/x-www-form-urlencoded;
这种格式的特点就是,name/value 成为一组,每组之间用 & 联接,而 name与value 则是使用 = 连接。这种传递只能是简单的键值对格式传递,也就是简单的不带嵌套的json格式;但是复杂情况下,要传一个复杂的json格式数组嵌套对象,对象中包含数组或者对象嵌套数组,数组中包含对象等,application/x-www-form-urlencoded是没有办法将复杂的json组织成键值对形式的。{ a: 1, b: 2, c: 3 }
##contentType:application/json;这种类型是text,我们ajax的复杂json数据用 JSON.stringify序列化后,然后发送,在服务器端接到然后用 JSON.parse 进行还原就行了,这样就能处理复杂的对象了。
{ data: { a: [{ x: 2 }] } }