axios封装http请求


vue使用axios封装http请求

安装axios

npm命令:

npm install axios --save

找一个合适的目录位置 建立一个http.js

在其中导入axios

import axios from 'axios';

配置axios

1.创建一个axios对象,取名http,并且在内部进行axios配置:

const http = axios.create({
  baseURL: BASE_URL, //请求base url ,一般由前后端商量接口确定base url,将自动加在url前面,除非url是个绝对url
  url: ,//用于请求的服务器url,只有这一项是必需的
  method: ,//创建请求时使用的方法,默认是get
  headers: {
    'Content-Type': 'application/json;charset=UTF-8',//设置请求时的header信息
  },
  timeout: ,//设置请求超时时间
  withCredentials: ,//如果需要携带cookie的时候这一项为true
});

详细参数配置查看这个网页axios配置

2.然后配置拦截器用来拦截request请求和response应答:

http.interceptors.request.use((data) => {
  return data;
});

http.interceptors.response.use((response) => {
  return response.data;
}, (error) => {
  return Promise.reject(error);
});

3.接下来在需要的模块里创建一个module.service.js文件,用来配置http的get ,post,以及其他的请求,举例:

import http from '../shared/services/http'

const prefix = 'catalog';
const MenuService = {
  getMenuNodeByParentId(parentId) {
    return http.get(`/${prefix}/system/directory/${parentId}`);
  },
  createMenuNode(catalogId, metaEnumFieldDTO, nodeCode) {
    return http.put(`/${prefix}/system/directory`, { catalogId, metaEnumFieldDTO, nodeCode });
  },
  deleteMenuNode(ids) {
    return http.post(`/${prefix}/system/directory/delete`, ids);
  },
  getMetaField(id) {
    return http.get(`/${prefix}/system/directory/metafield/${id}`);
  },
  enumfield(fieldCode, id) {
    return http.get(`/${prefix}/system/directory/enumfield/${id}/${fieldCode}`);
  },
};
export default MenuService;

4.最后在需要接口的地方引用即可,举例:

    fetchMenuSelectData(classValue) {
      if(this.node) {
        apiService.enumfield(classValue, this.node.id)
        .then((selects) => {
          this.menuSelect = selects;
          this.menuSelect.items.forEach(item => {
            this.checkList.push(item.itemCode);
          });
        }).catch(() => {});
      }
    },

文章作者: Silong Xu
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Silong Xu !
 上一篇
大文件上传方案 大文件上传方案
大文件上传实现方案 关于上传 其实Element-ui已经封装了一个自己上传的组件了,只是这个组件没有暂停,继续的功能。也就是说没有分片,没有断点续传的功能。 数管的项目根据UI图来看是需要实现断点续传这个功能的,于是在网络上搜索了相关资料
2020-09-27
下一篇 
9月24散记 9月24散记
9.24散记 早餐店有一个顾客抱怨没有位置坐了:想赚钱还不收拾桌子 这也许就是他发泄的方式 那阿龙怎么发泄呢 Paris in the rain 超好听!宝藏歌曲get 炒鸡浪漫~! 我和比奇堡的朋友们 是个可可爱爱的沙雕歌曲 真
2020-09-24
  目录