收藏
回答

安卓机型下,体验版无法正常获取数据,为什么表现不稳定?

近期做了一个微信小程序,体验版本发生这样的问题。微信小程序的后台是一个SpringBoot搭建的后台,有自己的登录页面,有mysql作为后台数据库,在开发者平台上测试一切正常,但是体验版本全面测试的时候,发现苹果手机测试一切正常,但是安卓手机只有第一个登录页面是正常的,能发出请求(登录页面是访问的自己搭建的后台),进去之后,应该显示一个从数据库取到的登录账户对应的任务列表,但是这个任务列表时而能返回数据,时而不能返回,监测后台,不返回数据时,压根没有发出请求到后台。https这些证书都已经配置过了,最让人奇怪的是,为什么安卓手机有时能收到数据,有时收不到,原因是什么呢?发请求是写在登录跳转页面的onload函数中。放在onready中同样不行。

有没有同样现象的朋友,怎么解决呢?一点思路都没有


登录的js代码

fetch('/login', logindata, 'GET').then(

function(res) {

var result = res.data.result;

if (result == "success") {

var toastText = '登录成功'

wx.clearStorage()

wx.setStorageSync("account", account)

let role = page.data.role

let fdata = {

account: account

}

if (role == "0") {

wx.redirectTo({

url: '../newtask/newtask1

})

在newtask.js的onLoad()中,发起请求,从后台请求数据

let page = this;

let account = wx.getStorageSync("account") //在需要数据的页面取值,取到登录的学号

wx.request({

url: "https://XXXXXXXXX:8080/newtasklist?account=" + account,

header: {

'Content-Type': 'application/json;charset=UTF-8;'

},

method: "GET",

data: {

account: account

},

success: function (res) {

console.log(res.data)

let list = res.data.newtaskList;

let endlist = res.data.endList;

console.log(list);

if (list == null) {

let toastText = '没有新任务'

wx.showToast({

title: toastText,

icon: '',

duration: 2000

});

} else {

page.setData({

newtasklist: list,

newlen: list.length,

endlist: endlist

});

}

看起来很简单的逻辑,就是登录成功后,跳转到该账号对应的任务界面,获取他的任务列表,(在onLoad中完成的,总怀疑这里有问题),表现出来就是有时能获取到,有时获取不到,是空数组。苹果无问题,安卓手机有这个问题存在。开发者平台也无问题。

各位大神帮帮忙,困扰很久!


最后一次编辑于  2020-03-25
回答关注问题邀请回答
收藏

2 个回答

  • brave
    brave
    2020-03-24

    你这样描述就有点很难解决哦

    2020-03-24
    有用 1
    回复
  • Wang
    Wang
    2020-03-26

    在wx.request的成功回调与失败回调中打断点看看走没走回调,看看回调得到的内容是啥

    2020-03-26
    有用
    回复 1
    • 阿胖
      阿胖
      2020-03-26
      目前,找了一个解决方法,就是在跳转页面前,将所有的数据取到,作为参数传递过去,就能稳稳的获取,但是如果是跳转,在onload中发请求,就非常不稳定,感觉是异步的问题,但是不知道问题的根源在哪里。
      2020-03-26
      回复
登录 后发表内容
问题标签