封装axios请求方法1

 

import axios from 'axios'
import Qs from 'qs'
import { Message, Loading  } from 'element-ui'

// axios.defaults.baseURL = 'http://xx.xxx.xx.xxx:8082/'  //服务器域名
axios.defaults.baseURL = window.CONFIG.baseUrl;
axios.defaults.timeout = '10000'  //请求超时时间

axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;multipart/form-data'
axios.defaults.headers.put['Content-Type'] = 'application/x-www-form-urlencoded'
axios.defaults.headers.get['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8'

/**
 * request interceptor 请求拦截(请求发出前处理请求)
 */
axios.interceptors.request.use(
  config => {
    return config
  },
  error => {
    return Promise.reject(error)
  }
)

/**
 * response interceptor 响应拦截器(处理响应数据)
 */
axios.interceptors.response.use(
  response => {
    const res = response.data
    if (res.state || res.state === 200 || res.code === 200 || res.code === '0000' || res.returnCode === '0000' || res.code === 10000) {
      return res
    } else {
      Message({
        message: res.description || 'error',
        type: 'error',
        duration: 5 * 1000
      })
      return Promise.reject(res)
    }
  },
  error => {
    Message({
      message: error.msg,
      type: 'error',
      duration: 5 * 1000
    })
    return Promise.reject(error)
  },
  error => {
    Message({
      message: error.msg,
      type: 'error',
      duration: 5 * 1000
    })
    return Promise.reject(error)
  }
)

/**
 * api请求方法
 *
 * @param {String} method       请求方法
 * @param {String} url          接口
 * @param {Object} params       提交数据
 */
const apiRequest = (method, url, params) => {
  const loading = Loading.service ({
    lock: true,
    text: 'Loading',
    spinner: 'el-icon-loading',
    background: 'rgba(0, 0, 0, 0.7)'
  });
  return new Promise((resolve, reject) => {
    axios({
      method: method,
      url: url,
      data: method !== 'get' ? Qs.stringify(params) : null,
      params: method === 'get' ? params : null
    }).then(res => {
      resolve(res)
      loading.close()
    }).catch(err => {
      reject(err)
      loading.close()
    })
  })
}

export default apiRequest;

 

在移动端封装axios请求方法,你可以按照以下步骤进行操作: 1. 首先,需要安装axios库。你可以使用npm或者yarn进行安装。 ```shell npm install axios ``` 2. 创建一个`api.js`文件,用于封装所有的请求方法。 ```javascript import axios from 'axios'; // 创建一个axios实例 const instance = axios.create({ baseURL: 'http://api.example.com', // 设置请求的基础URL timeout: 5000, // 请求超时时间 }); // 封装GET请求方法 export function get(url, params) { return new Promise((resolve, reject) => { instance .get(url, { params }) .then(response => { resolve(response.data); }) .catch(error => { reject(error); }); }); } // 封装POST请求方法 export function post(url, data) { return new Promise((resolve, reject) => { instance .post(url, data) .then(response => { resolve(response.data); }) .catch(error => { reject(error); }); }); } // 其他请求方法封装类似,比如PUT、DELETE等 ``` 3. 在需要使用请求的地方,引入`api.js`文件,并调用相应的请求方法。 ```javascript import { get, post } from './api'; // GET请求示例 get('/users', { id: 1 }) .then(data => { console.log(data); }) .catch(error => { console.error(error); }); // POST请求示例 post('/users', { name: 'Alice' }) .then(data => { console.log(data); }) .catch(error => { console.error(error); }); // 其他请求方法的调用类似,比如PUT、DELETE等 ``` 通过以上步骤,你就可以在移动端封装axios请求方法并使用了。你可以根据实际需求对这个封装进行扩展,比如添加请求拦截器、响应拦截器、错误处理等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南北极之间

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值