uni-app 微信PC端进行小程序使用时 post请求data是字符串 后端接收到的数据加了层JSON.stringify转字符串

uni-app 微信PC端进行小程序使用时 post请求data是字符串 后端接收到的数据加了层JSON.stringify转字符串

操作步骤:

在macos微信开发工具运行PC端调试,发现post请求data是字符串时,后端接收到的数据加了层JSON.stringify转字符串。

预期结果:

正常接收字符串

实际结果:

字符串又加了层JSON.stringify转字符串

bug描述:

uniapp编译的小程序,在macos微信开发工具运行PC端调试,发现post请求data是字符串时,后端接收到的数据加了层JSON.stringify转字符串。

附件


更多关于uni-app 微信PC端进行小程序使用时 post请求data是字符串 后端接收到的数据加了层JSON.stringify转字符串的实战教程也可以访问 https://www.itying.com/category-93-b0.html

8 回复

你可以先试试原生微信小程序有没有这个问题

更多关于uni-app 微信PC端进行小程序使用时 post请求data是字符串 后端接收到的数据加了层JSON.stringify转字符串的实战教程也可以访问 https://www.itying.com/category-93-b0.html


微信小程序原生也有问题

回复 程赞: 建议反馈给微信社区

回复 DCloud_UNI_JBB: 我看2022年都有人提了,估计是微信认为标准协议就是这样他们才不改

回复 程赞: 小程序端 uniapp 没有对request处理,调用的微信原生方法,微信有问题这边没办法处理

回复 DCloud_UNI_JBB: 好的,看来还是得后端处理下,谢谢

这是一个微信小程序PC端特有的问题。在PC端微信环境中,当使用uni.request发送POST请求时,如果data参数是字符串类型,微信底层会自动对字符串再做一次JSON.stringify处理。

解决方案有两种:

  1. 将data参数改为对象格式:
uni.request({
  method: 'POST',
  url: 'your_api_url',
  data: {content: 'your_string_data'}, // 改为对象格式
  success: (res) => {}
})
  1. 如果必须使用字符串格式,后端需要先判断数据类型:
// 后端处理示例
let data = typeof req.body === 'string' ? JSON.parse(req.body) : req.body
回到顶部