diff --git a/src/config/settings.js b/src/config/settings.js index 72c2d84..15cf1ff 100644 --- a/src/config/settings.js +++ b/src/config/settings.js @@ -68,8 +68,8 @@ module.exports = { messageDuration: 3000, //最长请求时间 requestTimeout: 5000, - //操作正常code - successCode: 200, + //操作正常code,支持String、Array两种方式 + successCode: [200, 0], //登录失效code invalidCode: 402, //无权限code diff --git a/src/utils/request.js b/src/utils/request.js index a8e90f2..703c9a5 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -15,6 +15,7 @@ import store from "@/store"; import qs from "qs"; import router from "@/router"; import _ from "lodash"; +import { isArray, isNumber } from "@/utils/validate"; const service = axios.create({ baseURL, @@ -30,9 +31,10 @@ service.interceptors.request.use( config.headers[tokenName] = store.getters["user/accessToken"]; } if (config.data) { + //这里会过滤所有为空、0、fasle的key,如果不需要请自行注释 config.data = _.pickBy(config.data, _.identity); } - if (process.env.NODE_ENV !== "test") { + if (process.env.NODE_ENV !== "preview") { if (contentType === "application/x-www-form-urlencoded;charset=UTF-8") { if (config.data && !config.data.param) { config.data = qs.stringify(config.data); @@ -74,7 +76,21 @@ service.interceptors.response.use( } const { status, data, config } = response; const { code, msg } = data; - if (code !== successCode) { + let codeVerification = false; + + if (isNumber(successCode)) { + codeVerification = code !== successCode; + } + if (isArray(successCode)) { + for (let i = 0; i < successCode.length; i++) { + if (code === i) { + codeVerification = code !== i; + break; + } + } + } + + if (codeVerification) { switch (code) { case invalidCode: errorMsg(msg || `后端接口${code}异常`);