复制粘贴即可使用
// http.js
// 通常可以吧 baseUrl 单独放在一个 js 文件了
const baseUrl = 'http://localhost:3000'
const token = 'x-token'
const request = (options = {}) => {
// 在这里可以对请求头进行一些设置
// 例如:
// options.header = {}
// options.header['token'] = token
return new Promise((resolve, reject) => {
uni.request({
url: baseUrl + options.url || '',
method: options.method|| 'GET',
data: options.data || {},
header: options.header || {}
}).then(data => {
let [err, res] = data;
resolve(res);
}).catch(error => {
reject(error)
})
});
}
const get = (url, data, options = {}) => {
options.method= 'GET';
options.data = data;
options.url = url;
return request(options)
}
const post = (url, data, options = {}) => {
options.method= 'POST';
options.data = data;
options.url = url;
return request(options)
}
export default {
request,
get,
post
}
// 在 main.js 中引入 http.js
import Vue from 'vue'
import App from './App'
Vue.config.productionTip = false
import request from "./common/http.js";
Vue.prototype.$http = request;
App.mpType = 'app'
const app = new Vue({
...App
})
app.$mount()
// 在页面中使用
getlist () {
this.$http.get('/submit', {
token: 'asd',
name: '123',
pass: '123456'
}).then(res => {
console.log(res.data)
})
}
//this.$http.post('/submit', {
// token: 'asd',
// name: '123',
// pass: '123456'
//}).then(res => {
// console.log(res.data)
//})
或者
// user.js
// 二次封装
// 通过这中方式调用 只需要引入http.js 无需在main.js中挂载api
import http from '../../http.js'
export getUserInfo = function(data) {
return http.request({
url: '/userInfo',
method: 'POST',
data: data
})
}
// 在页面中调用
import { getUserInfo } form '@/api/user.js'
methods: {
getUserData() {
getUserInfo({
a: 1,
b: 2
}).then(res => {
console.log(res)
})
}
}