收藏
回答

在微信PC版客户端中使用小程序,小程序中的POST请求如果没有参数时,会自带一个空对象{}

框架类型 问题类型 操作系统版本 手机型号 微信版本
小程序 Bug windows10 电脑端,微信 for PC客户端 3.9.2.26

在PC微信客户端中打开小程序:长江唯诚演示

登录:sjz@test 密码:1

抓包会发现接口:api/security/get 中传了一个{}的参数,但实际在开发者工具和手机端是没有的。

请问为什么POST请求会增加这个参数呢?

下图是开发者工具中的请求,可以看出这个请求是没有任何参数的


最后一次编辑于  2023-05-31
回答关注问题邀请回答
收藏

3 个回答

  • Amumu
    Amumu
    2023-06-12

    我也碰到了,导致PC端api签名校验不通过,后续是怎么处理的?

    2023-06-12
    有用
    回复 1
    • 好名字
      好名字
      2023-06-13
      前端拦截器判断下,如果是POST且参数为空的话就加密一个空对象,这样后端解密就不会报错, 
      或者后端拦截器处理下,如果参数是一个空对象就不解密,避免解密报错
      2023-06-13
      回复
  • 那一抹笑😃 穿透阳光
    那一抹笑😃 穿透阳光
    2023-05-31

    这个是你写的api吗

    2023-05-31
    有用
    回复 6
    • 好名字
      好名字
      2023-05-31
      对的,是调用的我们后端的API。不知道微信PC的小程序为何这样设计,给没有参数的POST接口增加一个参数{}
      2023-05-31
      回复
    • 那一抹笑😃 穿透阳光
      那一抹笑😃 穿透阳光
      2023-05-31回复好名字
      有影响使用吗,是api不能调用成功吗
      2023-05-31
      回复
    • 好名字
      好名字
      2023-05-31回复那一抹笑😃 穿透阳光
      对的,后端会对参数进行解密,如果没有参数就跳过解密。现在就是前端没有传参数,但是PC客户端中小程序发起的请求自带了一个{},导致请求报错
      2023-05-31
      回复
    • 好名字
      好名字
      2023-05-31
      我觉得请求体为空也不是不规范的行为吧?而且手机端和开发者工具都是正常的,只有PC微信版有这个问题
      2023-05-31
      回复
    • 那一抹笑😃 穿透阳光
      那一抹笑😃 穿透阳光
      2023-05-31回复好名字
      这种,要么就只有你多判断一下,是否是空对象
      2023-05-31
      回复
    查看更多(1)
  • 奋斗吧小青年°
    奋斗吧小青年°
    2023-05-31

    这种不应该找开发设置一下么

    2023-05-31
    有用
    回复 1
    • 好名字
      好名字
      2023-05-31
      是微信PC客户端哦,不是开发者工具的问题
      2023-05-31
      回复
登录 后发表内容