1.登陆时我故意输错密码 后台返回400的时候为什么没有走响应拦截的error?而是走的response
2.我在config的index.js里面配置了跨越了 我这样配置生产环境和开发环境对不对?
还有其它写的不对的地方吗
谢谢
import axios from 'axios'
import router from '../router/index.js'
import qs from 'qs'
import { Message } from "element-ui"
// 超时默认值
axios.defaults.timeout = 5000
axios.defaults.responseType = 'json'
var env = process.env;
if(env.NODE_ENV == 'production'){
axios.defaults.baseURL= env.HOST
}else{
axios.defaults.baseURL= '' //这里配置对不对?
}
axios.interceptors.request.use(
config => {
if (config.method === 'post') {
let data = qs.parse(config.data)
config.data = qs.stringify({
...data
})
return config;
}
},
err => {
return Promise.reject(err)
}
)
axios.interceptors.response.use(
response => {
console.log(response.data.code)
if(response.data.code!=200){
Message.error({message: response.data.message})
}
return response
},
error => {
console.log(1)//为什么不走这里
if (error) {
switch (error.response.status) {
case 401:
router.push({path: '/login'})
}
} else {
}
return error
}
)
/**
* post 方法封装
* @param url
* @param data
* @returns {Promise}
*/
export function post (url, data = {}) {
return new Promise((resolve, reject) => {
axios.post(url, data)
.then(response => {
resolve(response.data)
}, err => {
reject(err)
})
})
}
/**
* get 方法封装
* @param url
* @param data
* @returns {Promise}
*/
export function get (url, data = {}) {
return axios.get(url, {params: data})
.then((response) => {
return response.data
}).catch()
}
/**
* patch 方法封装
* @param url
* @param data
* @returns {Promise}
*/
export function patch (url, data = {}) {
return new Promise((resolve, reject) => {
axios.patch(url, data)
.then(response => {
resolve(response.data)
}, err => {
reject(err)
})
})
}
/**
* put 方法封装
* @param url
* @param data
* @returns {Promise}
*/
export function put (url, data = {}) {
return new Promise((resolve, reject) => {
axios.put(url, data)
.then(response => {
resolve(response.data)
}, err => {
reject(err)
})
})
}
/**
* delete 方法封装
* @param url
* @param data
* @returns {Promise}
*/
export function dele (url, data = {}) {
return new Promise((resolve, reject) => {
axios.delete(url, data)
.then(response => {
resolve(response.data)
}, err => {
reject(err)
})
})
}
1.输错密码后,请求返回成功是200,
,
400是后端自定义的code,所以会走response
2.axios.defaults.baseURL= '' 这样你请求发起的requesturl是localhost。这里需要填写对应的后端接口