Vue使用Axios小结 模拟form表单提交

1、安装axios

npm install axios

2、引入axios

import axios from 'axios'
import Qs from 'qs'

3、定义request.js

// create an axios instance
const service = axios.create({
  baseURL: process.env.BASE_API, // api的base_url
  timeout: 5000 // request timeout
})

// 设置请求拦截器
service.interceptors.request.use(config => {
  // 参数转换为表单模式
 if (config.data) {
    config.data = Qs.stringify(config.data)
  }
  // 设置请求头
  config.headers = {
    'Content-Type': 'application/x-www-form-urlencoded', // 模拟form表单方式提交请求
    'Access-Token': store.getters.token === undefined ? '' : store.getters.token() // 设置token
  }
  return config
}, error => {
  console.log(error) // for debug
  Promise.reject(error)
})

// 设置响应拦截器
service.interceptors.response.use(
  response => response,
  error => {
    console.log('err' + error) // for debug
    Message({
      message: error.message,
      type: 'error',
      duration: 5 * 1000
    })
    return Promise.reject(error)
  })

export default service

4、使用

import request from 'request'
export function fetchList(query) {
  return request({
    url: '/article/list',
    method: 'get',
    data: query
  })
}
import { fetchList } from '@/api/article'

methods: {
    getList() {
      this.listLoading = true
      fetchList(this.listQuery).then(response => {
        this.list = response.data.items
        this.total = response.data.total
        this.listLoading = false
      })
    }
  }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ## 框架和库的区别?> 框架(framework):一套完整的软件设计架构和**解决方案**。> > 库(lib...
    Rui_bdad阅读 3,018评论 1 4
  • # 传智播客vue 学习## 1. 什么是 Vue.js* Vue 开发手机 APP 需要借助于 Weex* Vu...
    再见天才阅读 3,690评论 0 6
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,107评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,011评论 25 709
  • 美食即生活,旅行即意义,打破囿于成见的世俗,来一场说走就走的旅行,是释放青春的最好方式。五个不甘寂寞的少年,决定背...
    洛冬轩阅读 2,018评论 1 3