解决上传文件报错request.upload.addEventListener

2023-12-19 11:04

本文主要是介绍解决上传文件报错request.upload.addEventListener,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

一、前言

二、问题

2.1 问题描述 

三、解决

2.1 卸载mockjs

2.2 将mockjs改为动态引入

一、前言

可被mockJs坑了一把....

二、问题

在调试项目的时候突然间提示 request.upload.addEventListener ,仔细一看发现是上传接口时报的,这就使得我有点摸不着头脑了...

2.1 问题描述 

今天在调用接口上传文件的时候意外的报错了 request.upload.addEventListener ,代码中是这么写的

export function xxx(data, file) {return request({url: 'xxx',method: 'post',data,headers: {'Content-Type': 'multipart/form-data'},onUploadProgress(e) {if (e.lengthComputable) {let rate = Math.floor(Number(e.loaded / e.total) * 100);file.fPercent = rate;}}});
}

定位之后发现是 onUploadProgress 这一个方法的问题,可是这个方法不是axios自带的吗?

三、解决

结果定位,发现是mockJs的 onUploadProgress 覆盖掉了axios的 onUploadProgress ,所以导致在调试的时候出现了这个错,知道了原因那就好办了,大致方法如下:

2.1 卸载mockjs

直接明了的办法,直接卸载掉,不装了总可以吧

npm uninstall mockjs

就我个人而言,虽然项目配置了mockjs,但真的很少用到,即使是真的需要mock数据也是写死一些json格式的本地请求一下就好了,而不是去调用mockjs来模拟请求....

因此,是否卸载其实真的可以仔细考虑一下!

2.2 将mockjs改为动态引入

如果不卸载,那么能否改成动态配置呢?肯定是可以的,

先说一下正常情况下的引入,以Vue为例,正常情况下mockjs的引入是在main.js中直接如下这种:

import Mock form "mockjs";

因此,如果要修改我们就不能直接在main.js中引入:

1. 首先新建一个文件夹mock,在里面新建类似于index.js中引入mockjs以及对其进行相关配置设置;

2. 在vue.config.js中进行配置,是否动态加载

module.exports = {publicPath: Setting.publicPath,outputDir: Setting.outputDir,assetsDir: Setting.assetsDir,runtimeCompiler: true,productionSourceMap: false,devServer: {},lintOnSave: false,css: {loaderOptions: {less: {javascriptEnabled: true}}},chainWebpack: config => {// 判断是否需要加入模拟数据const entry = config.entry('app');if (Setting.isMock) {entry.add('@/mock').end()}}
};

通过在setting中设置isMock属性的值,来判断是否需要给当前项目加载mock,比如可以在isMock中判断是否是development环境等等...

这篇关于解决上传文件报错request.upload.addEventListener的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/511926

相关文章

nginx中端口无权限的问题解决

《nginx中端口无权限的问题解决》当Nginx日志报错bind()to80failed(13:Permissiondenied)时,这通常是由于权限不足导致Nginx无法绑定到80端口,下面就来... 目录一、问题原因分析二、解决方案1. 以 root 权限运行 Nginx(不推荐)2. 为 Nginx

解决1093 - You can‘t specify target table报错问题及原因分析

《解决1093-Youcan‘tspecifytargettable报错问题及原因分析》MySQL1093错误因UPDATE/DELETE语句的FROM子句直接引用目标表或嵌套子查询导致,... 目录报js错原因分析具体原因解决办法方法一:使用临时表方法二:使用JOIN方法三:使用EXISTS示例总结报错原

Windows环境下解决Matplotlib中文字体显示问题的详细教程

《Windows环境下解决Matplotlib中文字体显示问题的详细教程》本文详细介绍了在Windows下解决Matplotlib中文显示问题的方法,包括安装字体、更新缓存、配置文件设置及编码調整,并... 目录引言问题分析解决方案详解1. 检查系统已安装字体2. 手动添加中文字体(以SimHei为例)步骤

Spring Boot 结合 WxJava 实现文章上传微信公众号草稿箱与群发

《SpringBoot结合WxJava实现文章上传微信公众号草稿箱与群发》本文将详细介绍如何使用SpringBoot框架结合WxJava开发工具包,实现文章上传到微信公众号草稿箱以及群发功能,... 目录一、项目环境准备1.1 开发环境1.2 微信公众号准备二、Spring Boot 项目搭建2.1 创建

nginx 负载均衡配置及如何解决重复登录问题

《nginx负载均衡配置及如何解决重复登录问题》文章详解Nginx源码安装与Docker部署,介绍四层/七层代理区别及负载均衡策略,通过ip_hash解决重复登录问题,对nginx负载均衡配置及如何... 目录一:源码安装:1.配置编译参数2.编译3.编译安装 二,四层代理和七层代理区别1.二者混合使用举例

Java中读取YAML文件配置信息常见问题及解决方法

《Java中读取YAML文件配置信息常见问题及解决方法》:本文主要介绍Java中读取YAML文件配置信息常见问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录1 使用Spring Boot的@ConfigurationProperties2. 使用@Valu

SQL Server配置管理器无法打开的四种解决方法

《SQLServer配置管理器无法打开的四种解决方法》本文总结了SQLServer配置管理器无法打开的四种解决方法,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录方法一:桌面图标进入方法二:运行窗口进入检查版本号对照表php方法三:查找文件路径方法四:检查 S

Redis出现中文乱码的问题及解决

《Redis出现中文乱码的问题及解决》:本文主要介绍Redis出现中文乱码的问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 问题的产生2China编程. 问题的解决redihttp://www.chinasem.cns数据进制问题的解决中文乱码问题解决总结

Python中Tensorflow无法调用GPU问题的解决方法

《Python中Tensorflow无法调用GPU问题的解决方法》文章详解如何解决TensorFlow在Windows无法识别GPU的问题,需降级至2.10版本,安装匹配CUDA11.2和cuDNN... 当用以下代码查看GPU数量时,gpuspython返回的是一个空列表,说明tensorflow没有找到

解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘问题

《解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘问题》:本文主要介绍解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4... 目录未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘打开pom.XM