收藏
回答

小程序 wx.request 组件 缓存BUG

框架类型 问题类型 操作系统 工具版本
小程序 Bug Windows 1.05.2103200

bug 产生的环境:因为业务的关系,我司希望已经注册的推广人员才能生成临时的推广二维码。

首次尝试:我们把对于后台找不到注册信息的推广人员 返回Json:

{

"errorCode": 1001

}

这些都没有问题,为了测试有加入推广的情况,我将自己在后台数据设为推广人员

{

"errorCode": 1001, ----------注意,多了这个

"ticket":"nFkUTA---很长",

"expire_seconds":7200,

"url":"http://weixin.qq.com/q/02aTmNp---------T"

}

我其实只传了下边3个参数,当然这个只能说明res变量只是重用,没有申请新内存空间而已,空的属性不会覆盖之前数据


再次尝试,知道变量需要重用以后,我把返回的参数都统一了,只是返回临时二维码的3变量,

如果非推广人员,希望直接通过ticket是否为null直接判断

{

"ticket":"null",

"expire_seconds":0,

"url":"http://weixin.qq.com/"

}

然后,神奇的BUG产生了,

{

"ticket":"null", ------这条永远都是null

"expire_seconds":0, --------下边两条都不受影响,会随着变动

"url":"http://weixin.qq.com/"

}

于是我开始找原因,首先先从我自己服务器的返回值是否正确判断,页面确认已经设置Cache-Control: "no-cache"

数据库日志表里边写入回传的json,自己写了个小工具,证实我服务器的返回数据是正确的。

然后我考虑是不是本地缓存问题,但是清除所有缓存、新建一个小程序、用一部新手机预览,都给我返回"ticket":"null"

种种迹象表明,wx.request 控件有了问题,可以私信我拿具体测试的接口。

回答关注问题邀请回答
收藏

3 个回答

  • 工号 9527
    工号 9527
    2021-05-25

    request 的 url 加个时间戳呢

    2021-05-25
    有用
    回复 6
    • 旺仔
      旺仔
      2021-05-26
      试过了,传参加时间戳,和返回加时间戳,都可以正常收到,但是就是第一个参数不变,其他参数都正常
      2021-05-26
      回复
    • 旺仔
      旺仔
      2021-05-26
      而且最奇怪的是,如果说是缓存问题,那么所有参数都应该是历史版本,更新一部分是什么操作?说明控件是按照回传的json做了更新的,但是我用C#写的工具证实我服务器回传的数据没问题。
      2021-05-26
      回复
    • 旺仔
      旺仔
      2021-05-26
      2021-05-26
      回复
    • 旺仔
      旺仔
      2021-05-26
      2021-05-26
      回复
    • 工号 9527
      工号 9527
      2021-05-27回复旺仔
      给个代码片段看看?
      2021-05-27
      回复
    查看更多(1)
  • 简为
    简为
    2022-10-03

    问题解决了吗?我也遇到了相同的问题,后端返回结果没问题,但是前端data里第一个字段就是不变

    2022-10-03
    有用
    回复
  • 旺仔
    旺仔
    2021-05-25

    一句话总结:wx.request 返回的结果和实际返回的结果不一样,有缓存之前结果的嫌疑,而且这个缓存还不是在本地,没法清理。


    2021-05-25
    有用
    回复
登录 后发表内容