utils-request.js页面
// switch (process.env.NODE_ENV) {
// case 'development':
// // 公共的地址开发
// baseUrl = 'http://192.168.1.191/abc/'
// break
// case 'test':
// baseUrl = 'https://test.epen.ltd/'
// break
// case 'production':
// baseUrl = 'https://production.epen.ltd/'
// break
// default:
// baseUrl = 'https://default.epen.ltd/'
// }
// console.log('baseUrl', baseUrl)
// 公共地址
import {
getToken
} from '../utils/auth';
import qs from 'qs'
// request.js
// 通常可以吧 baseUrl 单独放在一个 js 文件了
const baseUrl = 'XXX'
const request = (options = {}) => {
// 在这里可以对请求头进行一些设置
// 例如:
options.header = {
"Content-Type": "application/json",
"x-access-token": getToken()
}
return new Promise((resolve, reject) => {
uni.request({
url: baseUrl + options.url || '',
method: options.type || 'GET',
data: options.data || {},
header: options.header || {}
}).then(data => {
let [err, res] = data;
resolve(res);
}).catch(error => {
reject(error)
})
uni.addInterceptor('request', {
invoke(args) {
// request 触发前拼接 url
if (args.method === 'GET' && args.data) {
args.url =
`${args.url}?${qs.stringify(args.data, { arrayFormat: 'repeat',skipNulls:true })}`
delete args.data
}
}
})
});
}
const get = (url, data, options = {}) => {
options.type = 'GET';
options.data = data;
options.url = url;
return request(options)
}
const post = (url, data, options = {}) => {
options.type = 'POST';
options.data = data;
options.url = url;
return request(options)
}
const put = (url, data, options = {}) => {
options.type = 'PUT';
options.data = data;
options.url = url;
return request(options)
}
const upload = (filepath = {}) => {
// 在这里可以对请求头进行一些设置
// 例如:
let header = {
"Content-Type": "application/json",
"x-access-token": getToken()
}
return new Promise((resolve, reject) => {
uni.uploadFile({
url: baseUrl + '/api/wx/file/upload' || '', // 仅为示例,非真实的接口地址
filePath: filepath,
name: 'file',
header: header,
}).then(data => {
let [err, res] = data;
resolve(res);
}).catch(error => {
reject(error)
});
})
}
export default {
request,
get,
post,
put,
baseUrl,
upload
}