uniapp封装request请求
http.js文件
let url = ''
if (process.env.NODE_ENV === 'development') {
console.log('开发环境')
url = '基地址'
} else {
console.log('生产环境')
url = "基地址"
}
export const baseUrl = url;
export function http(url, data, method = 'GET') {
return new Promise((resolve, reject) => {
uni.request({
url: baseUrl + url,
data,
//data:{
// ...data,
// 'token': uni.getStorageSync('token') || ''
//}
header: {
'content-type': 'application/x-www-form-urlencoded',
'token': uni.getStorageSync('token') || ''//根据情况 token也可以写在data里
},
method,
success: (res) => {
if (res.statusCode == 200) {
console.log(res)
if (res.data.code == 1) {//根据后端返回的code值进行调整
resolve(res.data.data)
} else if (res.data.code == 0) {
uni.showToast({
title: res.data.msg,
icon: 'none'
})
reject(res.data.msg)
}
}else if (res.data.code == 401) {
let pages = getCurrentPages();
var currPage = pages[pages.length - 1]; //当前页面
let url = '/' + currPage.route;
if (uni.getStorageSync('token')) {
//登陆过期
uni.showToast({
title: "登录过期",
icon: 'none'
})
uni.removeStorageSync('userInfo')
uni.removeStorageSync('token')
setTimeout(() => {
uni.navigateTo({
url: '/pages/login/login?url=' + url
})
}, 800)
} else {
uni.navigateTo({
url: '/pages/login/login?url=' + url
})
}
} else {
uni.showToast({
title: "接口请求失败" + res.statusCode,
icon: 'none'
})
}
},
fail: (res) => {
uni.showToast({
title: '服务器请求异常',
icon: 'none'
})
},
complete: () => {
}
});
})
}
main.js中
// 全局引入http
import {http} from './common/http.js' //区分按需引入(加{})和默认引入(不加{})
Vue.prototype.$http=http
调用
this.$http('url',{参数},'POST').then(res=>{
console.log(res)
})