2***@qq.com
2***@qq.com
  • 发布:2020-10-27 13:52
  • 更新:2021-11-25 17:58
  • 阅读:4837

uni.request post 请求不能传数组,把数组变成了对象

分类:uni-app

uni.request 设置的请求头部Content-Type是application/json,传的参数是这样的
let params={
Car:[{carCode:'888888'}]
}
然后到了网页上请求一看,居然变成这样(如图)
估计是uni.request自己改的,怎么解决呢

2020-10-27 13:52 负责人:无 分享
已邀请:
2***@qq.com

2***@qq.com (作者) - 90后IT男

居然变成这样

1***@qq.com

1***@qq.com - nihao

同问,我也是同样这样的问题?希望大神帮帮忙

  • 2***@qq.com (作者)

    没办法,我最后只能封装axios请求了

    2020-11-03 14:55

  • a***@sohu.com

    回复 2***@qq.com: 我也碰到了这个问题,你是怎么解决的

    2021-07-16 13:44

DCloud_UNI_GSQ

DCloud_UNI_GSQ

哪端?其他端是否一致
单从截图未看出具体问题,你把预期的和实际的对比都贴出来

  • 2***@qq.com (作者)

    所有端都是这样的

    2020-11-03 14:53

  • 2***@qq.com (作者)

    我这是直接在网页里面请求截图的

    2020-11-03 14:54

  • 2***@qq.com (作者)

    你可以看下我之后发的截图,这应该和哪一端没关系,是uni.request自己转的

    2020-11-03 15:15

  • DCloud_UNI_GSQ

    回复 2***@qq.com: 所有端都一致的话,就没问题

    2020-11-03 20:38

  • DCloud_UNI_GSQ

    不同端是不同的实现,如果小程序、app、h5实现都一致,就没问题

    2020-11-03 20:39

  • 2***@qq.com (作者)

    回复 DCloud_UNI_GSQ: 但是uni.request怎么自己把数组转对象传递呢?这样是有问题的,导致接口请求不通,

    2020-11-09 14:53

  • 1***@qq.com

    回复 2***@qq.com: 解决了吗?

    2021-05-19 16:18

2***@qq.com

2***@qq.com (作者) - 90后IT男

请求前传的参数car(如图)


发起请求的时候car参数(如图)

6***@qq.com

6***@qq.com

2021-11.25 遇到同样问题。post 请求的参数里面有数组,content-type 为application/json。 在小程序工具中,查看netWork 出现一样问题
post 请求参数例如 params = {name:'test', testArr:['test1','test2']}
会被转成 params = {name:'test', testArr:{
'0':'test1',
'1':test2
}}

----------------------------------解决方法-------------------------------------

  1. post 请求时,先把 params = JSON.stringify(params) 转成纯字符串
  2. 在自己封装的uni.request 的 http.js 中,即拦截层,做一层处理
    uniRequest.interceptors.request.use(  
    (request) => {  
    request.data = JSON.parse(request.data)  
    }  
    )

该问题目前已经被锁定, 无法添加新回复