ajax发送js类型的数据
一、如图所示
var ids = [1,2,3,4,5,6,7]
$.ajax({ url: requestUrl, type: 'delete', data: JSON.stringify(ids), traditional: true, dataType: 'JSON', success: function (arg) { if (arg.status) { // 显示正确信息 $('#handleStatus').text('执行成功'); setTimeout(function () { $('#handleStatus').empty(); }, 5000); } else { // 显示错误信息 $('#handleStatus').text(arg.msg); } } })
注释:通过traditional: true阻止深度序列化,并且直接发送JSON.stringify(ids)的数据。后台反序列化后得到的就是个字典形式的数据
二、如图所示
$.ajax{ url:"xxxx", data:{ p: ["123", "456", "789"] } }
注释:默认的话,traditional为false,即jquery会深度序列化参数对象,以适应其他语言的框架(如PHP和Ruby on Rails框架,django框架),如字典里面嵌套列表格式就会变为
p: ["123", "456", "789"] => p[]=123&p[]=456&p[]=456,我们可以通过设置traditional 为true阻止深度序列化,然后序列化结果如下:p: ["123", "456", "789"]
=> p=123&p=456&p=456