解决MockJS引发的上传错误TypeError: ***.upload.addEventListener is not a function
2025-07-11 leiting (15阅读)
标签 JavaScript
遇到的问题:**TypeError: *.upload.addEventListener is not a function
在本地开发环境中上传功能正常,但在测试环境出现了该错误
。
我尝试了以下解决方案:
修改以下文件:
node_modules/mockjs/dist/mock.js
第8308行
node_modules/mockjs/src/xhr/xhr.js
第216行
添加代码:MockXMLHttpRequest.prototype.upload = xhr.upload;
此方案虽能解决问题,但存在局限性:
测试和线上环境采用自动打包部署
修改不会被打包包含
根本原因是vue-cli中的mockjs模块覆盖拦截了XMLHttpRequest,导致无法访问对象属性。
解决方案是移除mockjs:
卸载mockjs依赖:
npm uninstall mockjs
修改配置文件:
vue.config.js
:注释相关配置
src/main.js
:注释mockjs引入
如果你使用的是 Pure Admin 那就注释掉
import { visualizer } from "rollup-plugin-visualizer"; const prodMock = true; // mock支持 viteMockServe({ mockPath: "mock", localEnabled: command === "serve", prodEnabled: command !== "serve" && prodMock, injectCode: ` import { setupProdMockServer } from './mockProdServer'; setupProdMockServer(); `, logger: false }),
https://blog.csdn.net/weixin_44070058/article/details/139737676
最新评论: