uniapp调用接口封装
- 在项目中新建api文件夹,并新建api.js
const baseUrl = 'http://juanweixius.com'; //这里是封装的域名
const httpRequest = (opts, data) => {
let httpDefaultOpts = {
url: baseUrl + opts.url,
data: data,
method: opts.method,
header: opts.method == 'get' ? {
'X-Requested-With': 'XMLHttpRequest',
"Accept": "application/json",
"Content-Type": "application/json; charset=UTF-8"
} : {
'X-Requested-With': 'XMLHttpRequest',
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
},
dataType: 'json',
}
let promise = new Promise(function(resolve, reject) {
uni.request(httpDefaultOpts).then(
(res) => {
resolve(res[1])
}
).catch(
(response) => {
reject(response)
}
)
})
return promise
};
//带Token请求
const httpTokenRequest = (opts, data) => {
let token = "";
uni.getStorage({
key: 'token',
success: function(ress) {
token = ress.data
}
});
//此token是登录成功后后台返回保存在storage中的
let httpDefaultOpts = {
url: baseUrl + opts.url,
data: data,
method: opts.method,
header: opts.method == 'get' ? {
'Token': token,
'X-Requested-With': 'XMLHttpRequest',
"Accept": "application/json",
"Content-Type": "application/json; charset=UTF-8"
} : {
'Token': token,
'X-Requested-With': 'XMLHttpRequest',
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
},
dataType: 'json',
}
let promise = new Promise(function(resolve, reject) {
uni.request(httpDefaultOpts).then(
(res) => {
resolve(res[1])
}
).catch(
(response) => {
reject(response)
}
)
})
return promise
};
export default {
baseUrl,
httpRequest,
httpTokenRequest
}
- 在main.js中引用注册
import myRequest from './api/api.js'
Vue.prototype.$myRequest = myRequest
3.在页面使用封装好的请求接口方法
onShow: function() {
var that = this
var UserInfo = uni.getStorageSync("UserInfo")
let opts = {
url: '/workerapi/index/user',
method: 'post'
};
let param = { //传递参数
worker_id : UserInfo.id
};
this.$myRequest.httpTokenRequest(opts, param).then(res => {
//打印请求返回的数据
console.log(res.data);
if (res.data.code == 1) {
that.workerinfo = res.data.workerinfo
that.readcount = res.data.readcount
} else {
uni.showToast({
title: res.data.msg,
icon: 'none'
})
}
}, error => {
console.log(error);
})
},