配置基地址以及拦截器

/common/http.interceptor.js文件中

  1. const install = (Vue, vm) => {
  2. // 此为自定义配置参数,具体参数见上方说明
  3. Vue.prototype.$u.http.setConfig({
  4. baseUrl: 'http://localhost:8080/api/service/member', // 跨域
  5. // baseUrl: 'https://www.XXX', // 基地址
  6. loadingText: '努力加载中~', // loding 加载中显示文字
  7. loadingTime: 800, // 超过0.8秒显示加载中 loding效果
  8. originalData:true, // 返回服务器的原始数据
  9. });
  10. // 请求拦截,配置Token等参数
  11. Vue.prototype.$u.http.interceptor.request = (config) => {
  12. // 引用token
  13. // 方式一,存放在vuex的token,假设使用了uView封装的vuex方式
  14. // 见:https://uviewui.com/components/globalVariable.html
  15. // config.header.token = vm.token;
  16. // Token 信息
  17. config.header.Token = 'xxxxxx';
  18. // 可以对某个url进行特别处理,此url参数为this.$u.get(url)中的url值
  19. // if(config.url == '/user/login') config.header.noToken = true;
  20. return config;
  21. }
  22. // 响应拦截,判断状态码是否通过
  23. // Vue.prototype.$u.http.interceptor.response = (res) => {
  24. // }
  25. }
  26. export default {
  27. install
  28. }

main.js中 注册
注意:注册要写在app实例挂载完成后

  1. // 省略其他
  2. const app = new Vue({
  3. ...App
  4. })
  5. // 导入拦截器
  6. import httpInterceptor from '@/common/http.interceptor.js'
  7. // 注册拦截器
  8. Vue.use(httpInterceptor, app)

API集中管理

/common/http.api.js文件中

  1. const install = (Vue, vm) => {
  2. // 请求方式
  3. const get = (params = {},url) => vm.$u.get(url, params);
  4. const post = (params = {},url) => vm.$u.post(url, params);
  5. // 具体请求
  6. // 获取token
  7. const getToken = (data)=> post(data,'/XXXX')
  8. vm.$u.api = {getToken};
  9. }
  10. export default {
  11. install
  12. }
  1. 在在`main.js` 注册 写在导入拦截器下
  1. import httpApi from '@/common/http.api.js'
  2. Vue.use(httpApi, app)
  1. `.vue文件`中使用
  1. // promise 方法
  2. click(){ // 点击事件执行
  3. this.$u.api.getToken({mid:123})
  4. .then(res=>{
  5. console.log('resToken',res)
  6. }).catch(err=>{
  7. console.log('token',err)
  8. })
  9. }
  10. // async await 方法
  11. async click(){ // 点击事件执行
  12. try{
  13. const res = await this.$u.api.getToken({mid:123})
  14. console.log('res',res)
  15. }catch(err){
  16. console.log('err',err)
  17. }
  18. }