微信小程序开发问题解决


写在最初

半年有余的小程序前端开发,踩坑无数,在此记录!!!


1、读取数据库内容,含有HTML标签。解析这些标签使用:

<rich-text nodes="{{Notice.content}}"></rich-text>

2、将常使用数据存放到storage,读取时,应在page中的onload使用:
onLoad(){
    this.setData({
       userInfo: wx.getStorageSync(‘userInfo’)
    })
 },
否则无法实时读取storage信息。


3、照片上传问题

url: ‘http://127.0.0.1:8088/management/image/upload‘,  //图片上传接口,本地调试用
header: {‘cookie’: wx.getStorageSync(‘sessionid’)},
formData:{                  
     eventId: 124,   //事件id,暂时写死,int形式
     eventStatus: 1       //事件状态值,暂时写死,int形式             
},
method: ‘POST’,     
dataType: ‘json’,
filePath: tempFilePaths[i],
name: ‘file’,
其中,formData中的参数,是随图片一起传回后台的数据


4、小程序添加背景图片
使用 background-image 这个属性,后面需用url,且既不能用绝对路径,又不能用相对路径,需将整张图片转成base64编码的数据
转换网址:https://www.zhangxinxu.com/sp/base64.html
使用方法:background-image: url(“……”)

5、安卓登录,shiro权限认证失败(解决方案)
1、问题描述
最近有用户反馈,小程序登陆有问题
小程序成功登陆后,部分安卓用户经常会出现登陆异常情况。而 iPhone 用户从未出现此种状况
2、问题分析
a. 前期猜测,安卓用户授权问题,在进入登录页面的同时,调取获取位置接口,解决部分手机用户,但是治标不治本
b. 怀疑是缓存问题,毕竟iPhone没问题,安卓也有登录成功的情况出现,故改用globalData,结果,然并卵,发病率更改
c. 基本确认是 shiro 权限认证问题,但是大部分情况,都没有出现任何问题,那么问题出在哪里呢。感谢 csdn 四袋粉博主文章
该死的安卓系统,不按标准化程序来,获取后台输出也能随机来。
(苹果手机获取Set-Cookie顺序是严格一致的,安卓手机Set-Cookie顺序是随机的。)
image.png
当返回结果的header有多个Set-Cookier时,微信小程序获取res.header[‘Set-Cookie’],已经是将Set-Cookie用逗号拼接好的字符串。
如果使用简单的逗号分割,Expires时间也含有逗号,Cookie结果是错误的。
3、问题解决
Cookie正则分割,分号重新拼接
简单的逗号无法分割,可以使用正则表达式去分割Cookie字符串,
需要被分割的逗号,后继字符串是含有=
image.png
重新编译后,JSSIONID被整体分割处理,问题解决。perfect
上代码:
// Set-Cookie字符串获取
            var cookie = res.header[‘Set-Cookie’]
            
            // 字符串分割成数组
            var cookieArray = cookie.split(/,(?=[^,]*=)/)
            // 分号拼接数组
            var newCookie = cookieArray.join(‘;’)
            // 存储拼接后的cookie
            wx.setStorageSync(‘sessionid’, newCookie)


文章作者: pzxnys
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 pzxnys !
  目录