我们知道如果用application/x-www-form-urlencoded发送数据,bodyParser解析数据后会导致存到后端的json数据的值都变为string类型,像number类型和boolean类型都会变为字符串类型,当前端获取解析判断的时候会不好处理,想要服务器端的json数据不改变值的原始数据类型,这里建议用application/json请求头发送请求,具体步骤如下:
如图,页面发送数据data为对象形式,而且值得一提的是
这里是我用Promise封装XMLHttpRequest的一个脚本,除了上图要设置xhr.setRequestHeader('Content-Type', 'application/json')
请求头类型为json,还要xhr.send()数据的数据一定要JSON.stringify(data)转一下,否则后端接不到数据。
后端环境我用的是Node.js,接收数据的中间件是body-parser
在后端脚本中引入body-parser中间件,在app.use(bodyParser.json())引用到实列
数据写入到后端json文件我用的fs模块,最后json文件如下,没有改变传参时的原始数据类型
好了,今天的分享就到这里,下次再见!