2024-04-03——数据请求

数据请求我们可以使用axios来做数据拦截,但是具体请求时还是需要用uni-app提供的uni.request()API,例如:

// request.js
import axios from 'axios'
import qs from 'qs'

// 创建axios实例
const service = axios.create();
const baseUrl = '';   // 此处填写接口相对URL,用于拼接在url前面

service.defaults.timeout = 30000;
service.defaults.baseURL = baseUrl;
axios.defaults.adapter = function(config) {
  return new Promise((resolve, reject) => {
    let data = config.method === 'get' ? config.params : config.data;
    uni.request({
      url: baseUrl + config.url,
      method: config.method || 'get',
      header: {
        'content-type': 'application/x-www-form-urlencoded'
      },
      data: data,
      success: (res) => {
        return resolve(res)
      },
      fail: (err) => {
        return reject(err)
      }
    })
  })
};

// request拦截器
service.interceptors.request.use(
  config => {
    uni.showLoading({
      title: '加载中'
    });
    if (config.method === 'post') {
      config.data = qs.stringify(config.data);
    }
    return config;
  },
  error => {
    console.log(error)
    Promise.reject(error)
  }
);

// response 拦截器
service.interceptors.response.use(
  response => {
    uni.hideLoading();

    const res = response.data;
    if (res.code === 500) {
      uni.showToast({
        icon: 'none',
        title: res.msg
      });
      return Promise.reject('error')
    } else {
      return response.data
    }

  },
  error => {
    uni.showToast({
      icon: 'none',
      title: '未知错误'
    });
    return Promise.reject(error)
  }
)

export default service;
// index.js
import request from './request.js';
// 请求列表
export function getList(data) {
  return request({
    url: '/list',
    params: data
  });
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 如果你平时用Vue写H5项目比较多,然后突然有一天公司要你用uni-app来同时开发H5和小程序(甚至App),而...
    前端王睿阅读 8,113评论 0 24
  • 1.sass/scss和less区别?sass是一种动态样式语言,又称为缩排语法,比css多出好些功能(比如变量、...
    Angel_6c4e阅读 4,168评论 0 14
  • 基础类问题 h5的新特性 html5备注只有一种 DOCTYPE ⽂件类型声明(统 一标准)<!DOCTYPE h...
    h2coder阅读 1,729评论 1 1
  • 2020/04/29 周三 #[http://fe.zuo11.com/daily/2020-04.html#ui...
    抓猹吃瓜阅读 2,454评论 0 1
  • 前言 在React中,render函数返回的结果,取决于组件的props和state 我们都知道UI页面上的数据不...
    itclanCoder阅读 7,671评论 0 3