vue-cli webpack项目使用axios

一:安装axios依赖

cnpm install axios --save

二:创建axios实例

创建api接口请求文件,方便管理接口

新建文件:src/api/index.js

三:文件内容,在文件中设置了一个获取天气预报的接口进行测试

import axios from 'axios'

// 创建axios实例
const instance = axios.create({
  baseURL: '',
  timeout: 60000
})

// 请求拦截器
instance.interceptors.request.use(
  config => {
    // 在此处拦截过滤请求的内容和增加请求头设置
    console.log('项目请求了一个接口,此时拦截,会取消该请求')

    // 请求头设置
    // config.headers['xxx'] = 'xxxxxxx'

    return config
  },
  error => {
    // console.log(error)
    Promise.reject(error)
  }
)

// 响应拦截器
instance.interceptors.response.use(
  response => {
    // 处理返回的结果
    console.log('后台接口返回了内容,可以在此处判断后台接口返回的是正常数据还是错误信息')

    // 正常返回数据
    return response
  },
  error => {
    if (error.response) {
      switch (error.response.status) {
        case 400:
          alert(error.response.data.message || '请求参数异常')
          break
        case 403:
          alert(error.response.data.message || '无访问权限')
          break
        default:
          alert(error.response.data.message || '服务端异常')
      }
    }
    // 返回错误信息
    return Promise.reject(error)
  })

// 设置项目中需要用到的api,如果api接口比较多,也可以提取出来,然后在此文件导入
const api = {
  // 测试获取天气预报信息
  getWeatherInfo (params) {
    return new Promise((resolve, reject) => {
      instance.get(`https://www.tianqiapi.com/api/`, {
        params: params
      }).then((res) => {
        resolve(res)
      })
    })
  }
}

export default api

四:在组件中调用设置的接口

测试组件内容:

<template>
  <div>
    <!-- 获取天气预报信息按钮 -->
    <div>
      <button type="button" @click="getWeather">获取天气预报信息</button>
    </div>
    <!-- 展示天气预报信息 -->
    <h2>天气预报信息如下:</h2>
    <div>{{weather}}</div>
  </div>
</template>

<script>
// 导入定义配置的接口
import api from '@/api'

export default {
  data () {
    return {
      weather: null // 天气预报信息
    }
  },
  methods: {
    /**
     * 获取天气预报信息
     **/
    getWeather () {
      api.getWeatherInfo({
        version: 'v1'
      }).then((res) => {
        this.weather = res.data
      })
    }
  }
}
</script>

<style scoped>
</style>

五:结果显示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值