博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
15、vue项目封装axios并访问接口
阅读量:4978 次
发布时间:2019-06-12

本文共 3426 字,大约阅读时间需要 11 分钟。

1.在src下新建util文件夹,在util下新建request.js文件:

封装axios:

import axios from 'axios'import QS from 'qs';// import store from '@/store/index.js';import { Message } from 'element-ui';  //element库的消息提示,可以不用// 环境的切换// if (process.env.NODE_ENV == 'development') { //开发//     axios.defaults.baseURL = '/api';}// else if (process.env.NODE_ENV == 'debug') { //测试//     axios.defaults.baseURL = 'https://www.ceshi.com';// }// else if (process.env.NODE_ENV == 'production') { //线上//     axios.defaults.baseURL = 'https://www.production.com';// }// 请求超时时间axios.defaults.timeout = 15000;// post请求头axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8';// 请求拦截器axios.interceptors.request.use(    config => {        // 每次发送请求之前判断是否存在token,如果存在,则统一在http请求的header都加上token,不用每次请求都手动添加了        const token = '45f8f587-7b46-462f-a8c4-1ca4dc64a336';        if (token) {  // 判断是否存在token,如果存在的话,则每个http header都加上token            config.headers.Token = token;        }        return config;    },    error => {        return Promise.error(error);    });// 响应拦截器axios.interceptors.response.use(    response => {        if (response.status === 200) {            return Promise.resolve(response);        } else {            return Promise.reject(response);        }    },    // 服务器状态码不是200的情况    error => {        if (error.response.status) {            console.log(error)        }        return Promise.reject(error.response);    });export function get(url, params) {    return new Promise((resolve, reject) => {        axios.get(url,            {                params: params            })            .then(res => {                resolve(res.data);            })            .catch(err => {                if (!err.response) {                    Message({                        showClose: true,                        message: 'get请求错误',                        type: 'error'                    });                } else {                    reject(err.data);                    console.log(err.response, '异常2');                }            })    });}export function post(url, params) {    return new Promise((resolve, reject) => {        axios.post(url, params)            .then(res => {                resolve(res.data);            })            .catch(err => {                if (!err.response) {                    Message({                        showClose: true,                        message: 'post请求错误',                        type: 'error'                    });                } else {                    reject(err.data);                    console.log(err.response, '异常2');                }            })    });}export default axios

2:在util文件下再新建api.js文件:

import { get, post } from './request'export function getTest(params) {    return post(`/api/tbk/dg_optimus_material`, params);}export function getNvZhuang(params) {    return post(`/api/tbk/dg_material_optional `, params);}

3:在html页面访问接口:

import { getTest, getNvZhuang } from "@/util/api.js"; // 导入api接口  mounted: function() {    this.queryList();  },  methods: {    //精选    queryList() {      let params = { pageNo: 1, pageSize: 20 };      getTest(params)        .then(res => {          this.jingxuanlist =            res.tbk_dg_optimus_material_response.result_list.map_data;          console.log(this.jingxuanlist);        })        .catch(error => {          console.log(error);        });    }}

 

转载于:https://www.cnblogs.com/xlfdqf/p/11128089.html

你可能感兴趣的文章
1066-堆排序
查看>>
仿面包旅行个人中心下拉顶部背景放大高斯模糊效果
查看>>
强大的css3
查看>>
c#中的组件拖拽和MouseMove事件
查看>>
C# 小叙 Encoding (二)
查看>>
python创建对象数组避免浅拷贝
查看>>
CSS自学笔记(14):CSS3动画效果
查看>>
项目应用1
查看>>
Ubuntu下配置jdk和tomcat
查看>>
大型网站的演变升级
查看>>
图片延迟加载的实现
查看>>
C# 委托链(多播委托)
查看>>
解密个推持续集成
查看>>
基本SCTP套接字编程常用函数
查看>>
C 编译程序步骤
查看>>
页面抓取匹配时,万恶的\r,\n,\t 要先替换掉为空,出现匹配有问题,都是这个引起的...
查看>>
利用Node.js调用Elasticsearch
查看>>
构造函数
查看>>
LeetCode N-Queens
查看>>
jstat 命令
查看>>