微信小程序踩坑

1|0问题:

上个星期踩了一个比较严重的坑。大概就是登陆后空白数据,常见于演示版和正式版,时出现时不出现,关键是本地死活没问题。

2|0分析:

分析过程很痛苦,首先本地测试发现不了问题,演示版和正式版才有问题,意味着我们没办法在本地tomcat进行测试。

百度搜索到的有几个点归纳如下:

  1. 域名配置。
  2. 不了了之。
  3. 小程序底层框架适配出bug 。
  4. 性能优化。

很明显以上问题过于玄学,我纠结了一段时间,又把底层优化了一遍,几次都以为可以了,多测试了几次还是有问题。

最后盯着服务器上面的tomcat的命令窗口,进行反复BUG测试,发现空白数据都是报错:

pagenotfound 198 POST Not Supported

很纳闷,首先不会是参数问题,因为没参数。后改为Get请求,依旧不行。最后在重启多次Tomcat中,发现一处错误。收到包含无效cookie的cookie头......

然后突然想看看cookie是不是有问题

var header = { 'Content-Type': 'application/x-www-form-urlencoded', 'Cookie': sessionId }

在正式环境打印了sessionId,多次刷新看了下,发现果然有问题。

这就不得不提及我原本取cookie的方法,取到的是cookie是这样的。

cookies: Array(2) 0: "__irm_session_id=*******; Path=/; HttpOnly" 1: "rememberMe=deleteMe; Path=/; Max-Age=0; Expires=Mon 14-Sep-2020 09:33:11 GMT" length: 2 nv_length: (...) __proto__: Array(0) data: {success: true, message: null, url: null, data: null, errorCode: null} errMsg: "request:ok" header: {Cache-Control: "private", Expires: "Thu, 01 Jan 1970 08:00:00 CST", Set-Cookie: "__irm_session_id=41eadbda-73b7-43d4-94d1-0f06e8983… Max-Age=0; Expires=Mon, 14-Sep-2020 09:33:11 GMT", Content-Type: "application/json;charset=UTF-8", Transfer-Encoding: "chunked", …} statusCode: 200

然后我取到Cookie也就是

Cookie: "__irm_session_id=41eadbda-73b7-43d4-94d1-0f06e8983… Max-Age=0; Expires=Mon, 14-Sep-2020 09:33:11 GMT"

再进行从0位开始截取字符串的操作。然后问题来了,在正式服上会出现顺序换了的情况,并且是偶然性的,也就是如下:

cookies: Array(2) 0: "rememberMe=deleteMe; Path=/; Max-Age=0; Expires=Mon 14-Sep-2020 09:33:11 GMT" 1: "__irm_session_id=*******; Path=/; HttpOnly"

这样从0开始取必然有问题。关键本地顺序不会变,就疏忽了这个方面。

小程序获取cookie代码修改如下:

var info = res.data.success; var cookie = res.header["Set-Cookie"]; debugger if (undefined != cookie) { { var sessionPos; if ((sessionPos = cookie.indexOf("__irm_session_id=")) != -1) { if (sessionPos > 10) { var sessionPosNew; sessionPosNew = cookie.substring(sessionPos); app.globalData.cookie = sessionPosNew.substring(0, sessionPosNew.indexOf(";")) } else { app.globalData.cookie = cookie.substring(sessionPos, cookie.indexOf(";")); } } }

终究还是解决了,其实早该想到没有数据第一排查cookie,太依赖本地排查导致思维没发散。


__EOF__

本文作者boxJLP
本文链接https://www.cnblogs.com/toWorld/p/13582739.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   boxJLP  阅读(351)  评论(1编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示