main.js文件
// 使用ajax请求插件
var VueResource = require('vue-resource')
Vue.use(VueResource)
// 增加ajax请求预处理选项
Vue.http.interceptors.push(function (request, next) {
// request请求拦截,next响应拦截
request.method = 'POST';//在请求之前可以进行一些预处理和配置
// 返回
next((res) => {
if (res.ok) {
if (res.data.code === '401') {
var href = window.location.hash.slice(1)
if (href === '/index') {
setTimeout(function () {
window.location.href = 'login.html'
}, 3000)
} else {
// 当前路由不为/index 弹出重新登录弹窗
this.bus.$emit('relogin')
res.ok = false
}
} else if (res.data.code !== '200' && res.data.code !== '201') { // 201特殊用途,可以作为临时通过code
this.$message({
type: 'error',
showClose: true,
duration: 300000,
message: res.data.msg
})
res.ok = false
} else if (req.url.includes('/loginForSpringSecurity') && Vue.lsListeners.length) {
Vue.lsListeners.forEach(func => {
try {
func()
} catch (err) {
console.log('登录成功回调函数调用失败', err)
}
})
}
} else {
this.$message({
showClose: true,
duration: 300000,
type: 'error',
message: '请求 ' + res.url + ' 时发生错误,错误码:' + res.status
})
}
})
})
调用时
POST请求
this.$http.post(
requestUrl,
requestParams
).then(res=>{},res=>{})
GET请求请求
this.$http.get(
requestUrl,
requestParams
).then(res=>{},res=>{})