uni-app x 使用uni.reuqest报错
uni-app x 使用uni.reuqest报错
测试过的手机:
模拟器
操作步骤:
- 安装上面描述的来
预期结果:
能用
实际结果:
不能用
bug描述:
uni-app x 使用uni.request报错; 请求是post请求,表头是"Content-Type": “application/x-www-form-urlencoded”,
data = { data, // JSON化的数据 sign, // 校验 …
},
-
其中data.data里面的数据是对象JSON.stringify的数组,在这里面增加一个menu_data是个数组对象,使用uni.request就会报错,如果不加上这个数组对象,就不会报错。报错信息如下:第三张图
-
如果将menu_data JSON.stringify一下报错,第三张图

更多关于uni-app x 使用uni.reuqest报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html
重点是图3, 这是你自己业务服务器的报错。
更多关于uni-app x 使用uni.reuqest报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在 uni-app x 中使用 uni.request 发送 POST 请求时,如果 data 参数包含嵌套的复杂对象(如数组对象),可能导致序列化问题。错误通常源于数据格式与 application/x-www-form-urlencoded 不兼容。以下解决方案:
-
手动序列化数据:
对于application/x-www-form-urlencoded类型,需将数据转换为 URL 查询字符串格式(如key1=value1&key2=value2)。使用qs库或手动拼接:const data = qs.stringify({ data: JSON.stringify(originalData), sign: signValue }); -
检查数据内容:
确保menu_data数组中的对象均为可序列化值(避免循环引用或非常规类型)。若menu_data包含特殊字符或未编码内容,需通过encodeURIComponent处理。 -
调整请求配置:
若问题持续,尝试将请求头改为application/json,并直接传递 JSON 对象:header: { "Content-Type": "application/json" }, data: { data: originalData, sign: signValue }

