ajax数据请求传一个数组对象类型的值不成功的理解!

Posted 金翅鸟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ajax数据请求传一个数组对象类型的值不成功的理解!相关的知识,希望对你有一定的参考价值。

遇到这个问题的时候也找了好多网络资源,网上大多说的是传数组有两种方式:一是拼接字符串;二是请求是使用传统模式traditional:true

引自(https://blog.csdn.net/CrazyLai1996/article/details/76165971)(https://blog.csdn.net/u011734144/article/details/53836906/

大多数是采用第二种方式的答案,但是对于我的请求采用此方法没有解决。

最后通过415报错找到contentTypeapplication/x-www-form-urlencoded不允许;

最后通过查找资料了解到:

contentType 主要设置你发送给服务器的格式,dataType设置你收到服务器数据的格式。

##而contentType默认格式就是application/x-www-form-urlencoded

这种格式的特点就是,name/value 成为一组,每组之间用 & 联接,而 namevalue 则是使用 = 连接。这种传递只能是简单的键值对格式传递,也就是简单的不带嵌套的json格式;但是复杂情况下,要传一个复杂的json格式数组嵌套对象,对象中包含数组或者对象嵌套数组,数组中包含对象等,application/x-www-form-urlencoded是没有办法将复杂的json组织成键值对形式的。{ a: 1, b: 2, c: 3 }

##contentTypeapplication/json;这种类型是text,我们ajax的复杂json数据用 JSON.stringify序列化后,然后发送,在服务器端接到然后用 JSON.parse 进行还原就行了,这样就能处理复杂的对象了。

{ data: { a: [{ x: 2 }] } }

 

以上是关于ajax数据请求传一个数组对象类型的值不成功的理解!的主要内容,如果未能解决你的问题,请参考以下文章

struts2怎样获取AJAX post请求传递的数据

axios中怎么传数组

请教easyui ajax请求往后台传个数组 如何传

easyui ajax请求往后台传个数组 怎么传

ajax回调函数无法获取后台传过来的值(SSM框架),大神请指教!

jquery中的done和always解决ajax问题