在manifest.json文件里面添加如下代码
"mp-toutiao" : {
"usingComponents" : true
},
//主要在这
"h5" : {
"devServer" : {
// 开发环境
"proxy" : {
// 代理转发
//将你的接口最后公共部分提取出来
"/api.php" : {
"target" : "http://xxxxxxxxx.cn/api.php/", // 以/api 开头的代理到 target指定地址
"pathRewrite" : {
"^/api.php" : "" // 其中请求地址开头的 /api 替换为 '' //与上面的一致
}
}
}
}
},
在封装请求接口的地方,我是单独建立了一个文件
import {
msg
}
from './util.js'
import store from "@/store"
import config from '@/config'
// 非h5端,
// #ifndef H5
let BASE_URL = config.apiUrl
// #endif
// #ifdef H5
// h5, 进行代理转发
let BASE_URL = '/api.php/'
// #endif
const request = (options = {}) => {
// 调用store里面的expireToken方法来判断是登录否过期
store.commit('expireToken')
// resolve 正常响应,reject异常响应
let heard=uni.getStorageSync('accessToken')
return new Promise((resolve, reject) => {
uni.request({
url: BASE_URL + options.url,
method: options.method || 'GET',
header:{
},
data: options.data || {},
timeout: 8000, // 8秒超时时间,单位ms
success: (res) => {
resolve(res.data)
if(res.data.code==401){
store.commit('loginOut')
msg('您的登录已过期,请重新登录')
}
},
fail: (err) => {
// console.log('err', err)
msg('请求接口失败')
reject(err)
}
})
})
}
// 导出
export default request