关于项目数据请求

在 src 下面新建专门请求的 api ,里面放一个 request.js

新建 request.js文件

request.js (几乎一样,有待验证)

import axios from 'axios'
import router from '@/router'
import { Message } from 'element-ui'

// 创建axios实例
const service = axios.create({
  // baseURL: process.env.BASE_API, // api 的 base_url
  timeout: 10000 // 请求超时时间
})

// axios 请求拦截器,有token值则配置上token值
service.interceptors.request.use(
  config => {
    let token = window.localStorage.getItem('accessToken')
    if (token) { // 判断是否存在token,如果存在的话,则每个http header都加上token和Authorization
      config.headers['Token'] = token
      config.headers['Authorization'] = token
    }
    return config
  },
  err => {
    return Promise.reject(err)
  })
// axios 服务器响应拦截器,这里拦截401错误,并重新跳入登页重新获取token
service.interceptors.response.use(
  response => {
    switch (response.data.code) {
      case '1000001':
        // 这里写清除token的代码
        window.localStorage.removeItem('accessToken')
        router.replace({
          path: 'login'
        })
        Message.error('code已失效,请重新登录')
        break
      case '1000002':
        router.replace({
          path: '/'
        })
        Message.error('您没有权限操作此功能!')
        break
    }
    return response
  },
  error => {
    if (error.response) {
      // console.log(99999);
      // console.log(error.response);
      // console.log(99999);
      // switch (error.response.status) {
      //   case 401:
      //     // 这里写清除token的代码
      //     router.push({
      //       path: 'login',
      //       query: {redirect: router.currentRoute.fullPath}   //登录成功后跳入浏览的当前页面
      //     })
      // }
    }
    return Promise.reject(error.response.data)
  })
export default service

比方在 api 文件夹中新建一个专门请求气象的 weather.js,则里面代码第一行首先引入刚才的 request 请求,如图:

请求气象站的js文件

weather.js中的代码如下:

import request from '@/api/common/request'

const WeatherApi = {
    create: function() {
        const obj = {}
        obj.getWeatherPcData = function(url, data, pageNum, pageSize) {
            return request({
                url: url + '/IotWeatherHis/list/page' + '/' + pageNum + '/' + pageSize,
                method: 'post',
                data
            })
        }
        return obj
    }
}.create()

export default WeatherApi

后台接口:


主要看这个

快速搭建好请求的js

1、观察后台给的接口,尤其是红框内
2、在封装请求的js文件中,url一行,一一对应:


请求数据的weather.js文件.png
后台接口url传参.png

3、在vue页面调用时:


中间的obj其实没有用到
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,907评论 1 32
  • iOS网络架构讨论梳理整理中。。。 其实如果没有APIManager这一层是没法使用delegate的,毕竟多个单...
    yhtang阅读 10,707评论 1 23
  • 本博客转自:「作者:若愚链接:https://zhuanlan.zhihu.com/p/22361337来源:知乎...
    韩宝亿阅读 7,782评论 0 3
  • 孩子爸带着孩子进入梦乡啦 他们都很自律的 没什么特殊情况 每天晚上基本上在22:30之前能切入到睡觉模式 就只有我...
    幸福氧花阅读 1,855评论 0 4
  • 这部分是弗兰克在答应给伊尔莎上音乐课后的不安、重视的心理和自信的外在体现。 他向大家寻求帮助,想到背诗、弹钢琴,但...
    樱苔阅读 1,504评论 0 0

友情链接更多精彩内容