• 关于axios


    简介

    
    axios是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中
    主要是用于向后台发起请求的,还有在请求中做更多是可控功能。
    

    特点

    
    从浏览器中创建 XMLHttpRequests
    从 node.js 创建 http 请求
    支持 Promise API
    拦截请求和响应
    转换请求数据和响应数据
    取消请求
    自动转换 JSON 数据
    客户端支持防御 XSRF
    
    

    安装

    
    使用 npm:
    
    $ npm install axios
    使用 bower:
    
    $ bower install axios
    使用 cdn:
    
    <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
    

    使用

    
    
    import axios from 'axios'
    import router from '../router/index'
    import Message from 'ant-design-vue/es/message'
    import Cookies from 'js-cookie'
    
    const service = axios.create({
      baseURL: '/api', // 统一请求路径前缀
      timeout: 15000// 请求超时时间
    })
    
    service.interceptors.request.use(config => {
      let sessionId = Cookies.get('X-SESSION-ID') || ''
      if (sessionId) {
        config.headers['X-SessionId'] = sessionId // 让每个请求携带自定义token 请根据实际情况自行修改
      }
      return config
    }, err => {
      Message.error('请求超时')
      return Promise.reject(err)
    })
    
    // http response 拦截器
    service.interceptors.response.use(response => {
      const data = response.data
      // 根据返回的code值来做不同的处理(和后端约定)
      switch (data.code) {
        case 401:
          // 未登录 清除已登录状态
          router.push('/login')
          return Promise.reject(new Error('401'))
        case 403:
          // 没有权限
          if (data.message !== null) {
            Message.error(data.message)
          } else {
            Message.error('未知错误')
          }
          return Promise.reject(new Error('未知错误'))
        case 500:
          // 错误
          if (data.message !== null) {
            Message.error(data.message)
          } else {
            Message.error('未知错误')
          }
          // return Promise.reject(new Error('未知错误'))
          return Promise.reject(data.message)
        default:
          return data
      }
    }, (err) => { // 这里是返回状态码不为200时候的错误处理
      Message.error(err.toString())
      return Promise.reject(err)
    })
    
    export default service
    
    

    API使用

    
    import request from '@/utils/request'
    
    // 所属区域
    export function getListByGroupStartAdminArea () {
      return request({
        url: '/area/getListByGroupStartAdminArea'
      })
    }
    
    // 直升机信息删除
    export function deleteCopter (data) {
      return request({
        url: `/copter/deleteCopter`,
        method: 'post',
        data
      })
    }
    

    页面使用

    
    // 获取区域列表
        _getListByGroupStartAdminArea () {
          getListByGroupStartAdminArea().then(res => {
            this.options = res.payload
          })
        },
    
    
    // 删除直升机信息
        handleDelete(record) {
          let copter = this
          this.$confirm({
            title: '直升机信息删除',
            content: '请确认是否将此直升机删除?',
            okText: '确定',
            cancelText: '取消',
            onOk() {
              deleteCopter({
                id: record
              }).then(res => {
                copter.$message.error('删除成功!')
                copter._getCopterList()
              })
            },
            onCancel() {}
          })
        },
    

    来源:https://segmentfault.com/a/1190000018129057

  • 相关阅读:
    蔚来NIO Pilot 全球首试 终于摘掉半成品帽子
    这个机械手可精准灵活地接住一颗掉落的棉花糖并使其“安然无恙”
    谷歌已经领先 那么苹果的人工智能战略又在哪里
    你见过机器船吗?MIT新版ROBOAT可以自动组装
    谷歌、亚马逊、苹果三大语音助手发展现状 谁被甩在身后了
    Python中的十大图像处理工具
    测试用例设计理论
    Flask+Mysql搭建网站之数据库问题
    Flask+Mysql搭建网站之网页设计
    Flask+Mysql搭建网站之安装Mysql
  • 原文地址:https://www.cnblogs.com/qixidi/p/10390832.html
Copyright © 2020-2023  润新知