1.问题:
测试环境下,使用vconsole调试移动端,个别机型(iphone6s/vivo/个别huawei机型)和ipad调取接口失败,iphone11,honor等部分手机正常。经查找发现这些机型调接口使用post方式传参时,参数对象转为json格式时最后一行多了个逗号,导致参数格式不正确后端无法正确解析。
解决方法:
是因为引用了cdn的vconsole3.0.0版本,而此版本却指向了有bug的3.2.0版本,vconsole3.2.0版本重写了json.stringify方法,转为json格式时最后一行会多个逗号。改成npm下载的vconsole即可。
代码:
npm install vconsole@3.0.0
main.js里引入
import Vconsole from ‘vconsole’
if (process.env.VUE_APP_MODE === ‘test’) {
const vConsole=new Vconsole()
Vue.use(vConsole)
}
2.问题:
第一个问题里的机型,在使用json.parse转换localstorage本地存储的字符串时也会报错"json parse error:expected’}'"(本地存储的字符串是对象经过JSON.stringify转的)
原因:
也是vconsole原因
解决方法:
(1)更换vconsole
(2)改成vuex存储,使用插件存到本地也行
参考文章:https://blog.youkuaiyun.com/sz85850597/article/details/86478023
vconsole版本导致的传参问题
于 2020-12-31 13:25:12 首次发布
在测试环境中,遇到部分iPhone(如6s)、vivo、华为及iPad机型通过vconsole调用接口失败,同时在转换localStorage存储的字符串时出现JSON.parse错误。问题源于vconsole 3.0.0版本实际指向了有bug的3.2.0版本,该版本的json.stringify方法导致了额外的逗号。解决方案是降级到3.0.0版本或者切换到其他存储方式如Vuex。
1982

被折叠的 条评论
为什么被折叠?



