- 先在main.js加这段代码
//请求发送拦截,把数据发送给后台之前做些什么......
axios.interceptors.request.use((request) => {
//这个例子中data是loginName和password
let REQUEST_DATA = request.data
//统一进行qs模块转换
request.data = qs.stringify(REQUEST_DATA)
//再发送给后台
return request;
}, function (error) {
// Do something with request error
return Promise.reject(error);
});
//请求返回拦截,把数据返回到页面之前做些什么...
axios.interceptors.response.use((response) => {
//特殊错误处理,状态为10时为登录超时
if (response.data.code === 10) {
iView.Message.error("登录已超时,请重新登录");
router.push("/login")
//其余错误状态处理
} else if (response.data.code != 0) {
iView.Message.error(response.data.msg)
//请求成功
} else if(response.data.code === 0){
//将我们请求到的信息返回页面中请求的逻辑
return response;
}
//......
}, function (error) {
return Promise.reject(error);
});
3.打断点发现request.data一直为空
4.后来发现是qs.stringify转化出现问题,因为请求的时候已经进行了一次转化
代码来源,不懂的看这里!!!https://segmentfault.com/a/1190000016787376