vconsole版本导致的传参问题

在测试环境中,遇到部分iPhone(如6s)、vivo、华为及iPad机型通过vconsole调用接口失败,同时在转换localStorage存储的字符串时出现JSON.parse错误。问题源于vconsole 3.0.0版本实际指向了有bug的3.2.0版本,该版本的json.stringify方法导致了额外的逗号。解决方案是降级到3.0.0版本或者切换到其他存储方式如Vuex。

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 的简介与使用方法 VConsole 是一款轻量级的前端调试工具,主要用于移动端 Web 应用程序的开发和调试。它能够帮助开发者实时查看 JavaScript 日志、网络请求以及其他调试信息。 #### 安装方式 可以通过多种方式进行安装: 1. **通过 NPM/Yarn 安装** 使用包管理器可以方便地集成到现代前端项目中。 ```bash npm install vconsole --save ``` 或者 ```bash yarn add vconsole ``` 2. **通过 CDN 引入** 如果不想增加项目的依赖项,可以直接通过 CDN 加载脚本文件。 ```html <script src="https://unpkg.com/vconsole@latest/dist/vconsole.min.js"></script> ``` #### 初始化与基本使用 在完成安装之后,需要初始化并创建一个 VConsole 实例以便于后续操作。 对于基于模块化的项目(如 Vue),可以在入口文件中引入: ```javascript import VConsole from 'vconsole'; const vConsole = new VConsole(); // 创建实例 [^1] // 开始记录日志 console.log('This is a test log'); ``` 如果是普通的 HTML 文件,则需按照如下方式实现: ```html <script src="path/to/vconsole.min.js"></script> <!-- 替换为实际路径 --> <script> var vConsole = new window.VConsole(); // 创建实例 [^3] </script> ``` #### 配置选项 为了满足不同场景下的需求,VConsole 提供了一些自定义配置参数。例如调整主题颜色等外观属性。 ```javascript const vConsole = new VConsole({ theme: 'dark', // 设置深色模式 }); ``` #### 移除 VConsole 实例 当不再需要此工具时,可通过调用 destroy 方法释放资源。 ```javascript vConsole.destroy(); ``` #### 打印行为的变化 一旦加载了 VConsole 插件,所有的 `console.*` 函数不仅会在浏览器默认控制台显示输出内容,在页面上的虚拟终端也会同步展示这些消息 [^5]。 --- ### 示例代码片段 以下是完整的示例演示如何在一个简单的 Vue 项目中启用 VConsole 功能。 ```javascript // main.js (Vue 项目中的主入口文件) import Vue from 'vue'; import App from './App.vue'; // 导入并启动 VConsole import VConsole from 'vconsole'; const vConsole = new VConsole(); new Vue({ render: h => h(App), }).$mount('#app'); // 测试日志 console.warn('Warning message!'); console.error('Error occurred.'); ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值