jQuery使用ajax向node后台发送对象、数组参数
引言
- 最近在使用
jq
,做一些小demo,但是突然发现jq
使用ajax像后台(node)传递一个对象参数,但是后台却接收不了。
原因
- 后面了解到。
jq
会将一个对象解析成obj[key]: value
这样的形式传递给后台,数组解析成arr[]: []
,当传入更复杂的对象和数组对象或者数据再嵌套着对象或者数组
,jq
也会解析更深层的对象或者数组,使它们都成为一个个独立的键值对的关系,再传入后台,下面我们演示了几种情况。
简单的对象、数组
$.ajax({
type: 'POST',
url: 'http://localhost:3003/blogsz',
dataType: 'json',
data:{
arr: [1, 2, 3],
obj:{
name: '车神-黄杰',
age: 23
}
}
})
终端输出结果
复杂的对象、数组
$.ajax({
type: 'POST',
url: 'http://localhost:3003/blogsz',
dataType: 'json',
data:{
arr: [{gender: '男'}, ['敲代码', '打篮球'], 2, 3],
obj:{
name: '车神-黄杰',
age: 23,
love:['打豆豆', '爬山'],
class: {
item1: '16电子1',
item: '16电子2'
}
}
}
})
终端输出结果
解决
- 很明显,不管是对象还是数组
jq
都会把它解析成键值对的关系传递给后台,那么只要把对象或者数组变成键值对的关系,就可以不用解析了,这里用到了JSON.stringify()
方法把对象和数组解析成一个json字符串,在传递给后台。
使用
JSON.stringify()
方法把arr、obj
的值解析成json字符串,在后台在使用JSON.parse()
解析成js
对象和数组
$.ajax({
type: 'POST',
url: 'http://localhost:3003/blogsz',
dataType: 'json',
data:{
arr: JSON.stringify([{gender: '男'}, ['敲代码', '打篮球'], 2, 3]),
obj:JSON.stringify({
name: '车神-黄杰',
age: 23,
love:['打豆豆', '爬山'],
class: {
item1: '16电子1',
item: '16电子2'
}
})
}
})
后台解析代码
router.post('/blogsz', (req, res) =>{
const {arr, obj} = req.body
console.log('复杂的对象、数组')
console.log(req.body)
//使用 JSON.parse()解析json字符串
const newObj = JSON.parse(obj)
console.log('-----------------------------')
console.log("获取name值---->"+ newObj.name)
}
终端输出结果
jQuery使用ajax向node后台发送对象、数组参数的更多相关文章
- jQuery的ajax 方法提交多个对象数组问题 C# traditional $.param
当用$.ajax()向后台提交参数时,如果参数中数组的话一般在后台会用List<T>接收;但老是不成功如下面代码 "}]; "}]; function addUser( ...
- jquery用ajax方式从后台获取json数据后如何将内容填充到下拉列表
对于问题从后台获取json数据,将内容填充到下拉列表,代码非常简单,具体过程请看下面代码. 需求:url:链接 par:ID sel:下拉列表选择器 function BuildS ...
- ajax使用json数组------前端往后台发送json数组及后台往前端发送json数组
1.引子 Json是跨语言数据交流的中间语言,它以键/值对的方式表示数据,这种简单明了的数据类型能被大部分编程语言理解.它也因此是前后端数据交流的主要方式和基础. 2.前端往后台传输json数据 第一 ...
- SpringMVC接收对象数组参数进行封装
前台代码:注意.contentType : "application/json; charset=utf-8",必须要设置,只有这样SpringMVC才认识这个json数组参数 f ...
- springmvc 传递对象数组参数 property path is neither an array nor a List nor a Map
Spring MVC 3: Property referenced in indexed property path is neither an array nor a List nor a Map ...
- jquery用ajax方式从后台获取json数据,将内容填充到下拉列表。
从后台获取json数据,将内容填充到下拉列表. url:链接 par:ID sel:下拉列表选择器 //获取下拉列表 function BuildSelectBox(url, par, sel) { ...
- jquery 使用ajax调用c#后台方法
$.ajax({ type: "get", cache: false, ...
- jquery 如何动态绑定传递到后台上传组件参数
$("#upload_photo").uploadify({ 'auto' : false, 'method' : "post", 'height' : 20, ...
- ajax传数组到后台,后台springmvc接收数组参数
var ids= new Array(); $("input[class='detailCheck']:checked").each(function(i,k){ var ...
随机推荐
- 洛谷$P$3160 局部极小值 $[CQOI2012]$ 状压$dp$
正解:状压$dp$ 解题报告: 传送门! 什么神仙题昂,,,反正我是没有想到$dp$的呢$kk$,,,还是太菜了$QAQ$ 首先看数据范围,一个4×7的方格,不难想到最多有8个局部极小值,过于显然懒得 ...
- TCP状态机:当服务端主动发FIN进TIME_WAIT,客户端源端口复用会发生什么
0X01 正常情况下TCP连接会通过4次挥手进行拆链(也有通过RST拆除连接的可能,见为什么服务器突然回复RST--小心网络中的安全设备),下图TCP状态机展示了TCP连接的状态变化过程: 我们重点看 ...
- JavaScript中函数式编程中文翻译
JavaScript 中的函数式编程 原著由 Dan Mantyla 编写 近几年来,随着 Haskell.Scala.Clojure 等学院派原生支持函数式编程的偏门语言越来越受到关注,同时主流的 ...
- C#事件(Event): 发布符合 .NET Framework Guidelines 的事件
本文翻译整理自:https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/events/how-to-publish-event ...
- oracle-按年、月、周、日、时、分 分组查询统计数据,无数据补零(connect by)
目的:统计一段时间内每年.每月.每周.每日.每时.每分数据,无数据时自动补零 思路:1. 生成给定时间段对应日期 2. 将原表中该时间段内的不为0的数据量统计出来 3. 用left join连接起来, ...
- SpringBoot+Neo4j在社交电商中,讲述你是怎么被绑定为下线的
上两篇文章我们主要讲解了Neo4j的基本知识以及Neo4j的基本使用,这篇文章我们就以实例来深入的理解一下,我们以社交电商中的绑定关系为例,使用SpringBoot+Neo4j来实现. Neo4j文章 ...
- cogs 1829. [Tyvj 1728]普通平衡树 权值线段树
1829. [Tyvj 1728]普通平衡树 ★★★ 输入文件:phs.in 输出文件:phs.out 简单对比时间限制:1 s 内存限制:1000 MB [题目描述] 您需要写一种数 ...
- .NET绘制旋转太极图
.NET绘制旋转太极图 我之前发了一篇<用.NET写"算命"程序>的文章,但有人纷纷提出了质疑,认为没有"科学"(mi xin)依据
- Nginx代理服务——常用的配置语法
可以到官方查看所有代理的配置语法http://nginx.org/en/docs/http/ngx_http_proxy_module.html 缓存区 Syntax:proxy_buffering ...
- 异数OS-织梦师-PBFT(六) 走出区块链,加速破解PBFT
. 异数OS-织梦师-PBFT(六) 走出区块链,加速破解PBFT 拜占庭 本文来自异数OS社区 github: https://github.com/yds086/HereticOS 异数OS社区Q ...