解决方案:
第一步:
vue.config.js中去掉代理:
devServer: {
port: port,
open: true,
overlay: {
warnings: false,
errors: true
}, // proxy: {
// // change xxx-api/login => mock/login
// // detail: https://cli.vuejs.org/config/#devserver-proxy
// [process.env.VUE_APP_BASE_API]: {
// target: `http://localhost:${port}/mock`,
// changeOrigin: true,
// pathRewrite: {
// ['^' + process.env.VUE_APP_BASE_API]: ''
// }
// }
// },
before: require('./mock/mock-server.js')
}```以上将after替换成before,亲测after里面直接用app.post定义方法不行只能在before中定义才有效第二步:修改mock文件夹下的responseFake方法如下:``` javascript// for mock serverconst responseFake = (url, type, respond) => { return {
url: new RegExp(`${process.env.VUE_APP_BASE_API}${url}`),
type: type || 'get', response(req, res) { console.log('request invoke:' + req.path); res.json(Mock.mock(respond instanceof Function ? respond(req, res) : respond));
}
};
};
https://github.com/PanJiaChen/vue-element-admin/issues/2897#issuecomment-569946355