第一次写后端代码,用的koa……
前端请求用的axios,做了常规的post请求配置
config.headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=utf-8';
config.data = qs.stringify(config.data, { arrayFormat: 'indices' });
发送的请求是这样的,其中phone_num是一个数组
view source
但在服务端接收到的数据里面,phone_num变成了字符串,并且取值只有数组中的第一个数据了
这是服务端的写法
router.post('/接口地址', async ctx => {
console.log('ctx.request.body', ctx.request.body);
ctx.body = 'OK';
});
怀疑是Connent-Type的问题
于是加了Connent-Type的设置
router.post('/接口地址', async ctx => {
ctx.set('Content-Type', 'application/x-www-form-urlencoded;charset=utf-8');
console.log('ctx.request.body', ctx.request.body);
ctx.body = 'OK';
});
Connent-Type倒是变了 但是获取的数组数据依旧没有变
网上搜了很多也没有找到这类的问题,我以前写纯前端的时候也是这么发post请求的呀……
求求大佬救救孩子吧T_T
有两个可能:
其中第二种方式在用express的时候碰到过,传过去的数组参数变成了一个第一个字符串。解决方法是用另外一种方式传递数组,然后解决了。又或者你将传一个字符串过去,然后在服务端自己解析为数组