黄老湿,最近在搞一个博客项目,想使用axios的请求拦截和响应功能,结果遇到了两个小问题
module.exports = async (req, res) => {
if (req.session && req.session.userInfo && req.session.userInfo.role == 'admin') {
const s = `var isLogin = true; var userId=\"${req.session.userInfo._id}\"`
res.send(s)
}else {
res.send('var isLogin = false')
}
};
axios拦截是这样写的
axios.interceptors.request.use(
config => {
config.url = '/login/status'
config.method = 'get'
return config
},
err => {
return Promise.reject(err.response)
}
)
axios.interceptors.response.use(response => {
var result = response.data
console.log(result) // var isLogin = true; var userId="5eef67dd50c6a36924eab781"
if (!result.isLogin) {
this.$router.push({ path: '/login' })
}
})
我登录进入后台管理页面的请求,没做拦截之前,响应都是正常的,代码如下,使用的是element ui的from组件
login(formName) {
this.$refs[formName].validate(async valid => {
if (!valid) return
try {
const { data } = await this.$http.post('/login', this.loginForm)
if (data.role === 'admin') {
this.$router.push({ name: 'home' })
} else {
this.$router.push({ path: '/' })
}
} catch (error) {
return this.$message.error(error.response.data.message)
}
})
},
/* 重置表单 */
resetLoginForm(formName) {
this.$refs[formName].resetFields()
}
请黄老师帮看看