写在最初
半年有余的小程序前端开发,踩坑无数,在此记录!!!
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顺序是随机的。)
当返回结果的header有多个Set-Cookier时,微信小程序获取res.header[‘Set-Cookie’],已经是将Set-Cookie用逗号拼接好的字符串。
如果使用简单的逗号分割,Expires时间也含有逗号,Cookie结果是错误的。
3、问题解决
Cookie正则分割,分号重新拼接
简单的逗号无法分割,可以使用正则表达式去分割Cookie字符串,
需要被分割的逗号,后继字符串是含有=
重新编译后,JSSIONID被整体分割处理,问题解决。perfect
上代码:
// Set-Cookie字符串获取
var cookie = res.header[‘Set-Cookie’]
// 字符串分割成数组
var cookieArray = cookie.split(/,(?=[^,]*=)/)
// 分号拼接数组
var newCookie = cookieArray.join(‘;’)
// 存储拼接后的cookie
wx.setStorageSync(‘sessionid’, newCookie)