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 = ; // 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 = store.state.token;
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 === ) {
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 function deletes(url, params) {
  return new Promise((resolve, reject) => {
       axios.delete(url, {
          data: params
          }).then(res => {
               resolve(res.data)
             }).catch(err => {
                 reject(err.data)
            })
          })
        }
export function put(url, params) {
       return new Promise((resolve, reject) => {
        axios.put(url, params).then(res => {
         resolve(res.data)
          }).catch(err => {
      reject(err.data)
      })
     })
   }
export default axios

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

import { get, post } from './request'
export function getTest(params) {
return get(`/api/tbk/dg_optimus_material`, { id: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: , pageSize: };
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);
});
}
}

15、vue项目封装axios并访问接口的更多相关文章

  1. vue项目,axios请求图片接口,接口返回的是文件流的形式,如何转换成图片?

    axios .get('/captcha', { params: param, responseType: 'arraybuffer' }) .then(response => { return ...

  2. vue项目中 axios 和Vue-axios的关系

    文章收集于:https://segmentfault.com/q/1010000010812113 在vue项目中,会经常看到如下代码:   今天看到有些项目是这样写的,就有点看不懂了.  ----解 ...

  3. vue 项目如何使用微信分享接口

    首先做微信网页都要接入微信sdk: 安装sdk npm install weixin-js-sdk --save 具体可以查看微信公众平台技术文档:https://mp.weixin.qq.com/w ...

  4. vue项目对axios的全局配置

    标准的vue-cli项目结构(httpConfig文件夹自己建的): api.js: //const apiUrl = 'http://test';//测试域名,自己改成自己的 const apiUr ...

  5. vue-cli新建vue项目安装axios后在IE下报错

    使用脚手架新建了一个vue项目,可以在IE9+浏览器运行,但是在添加了axios后,在IE下就报错了 首先是安装axios,在命令行执行: $ npm install axios -s //执行命令, ...

  6. Django day32 跨域问题,创建vue项目,axios的使用

    一:跨域问题 1.同源策略(浏览器的安全策略) 只允许当前页面朝当前域下发请求,如果向其他域发请求,请求可以正常发送,数据也可以拿回,但是被浏览器拦截了 2.cors:只要服务器实现了CORS,就可以 ...

  7. vue项目使用axios发送请求让ajax请求头部携带cookie

    最近做vue项目时遇到登录权限问题,登录以后再发送的请求头部并没有携带登录后设置的cookie,导致后台无法校验其是否登录.检查发现是vue项目中使用axios发送ajax请求导致的.查看文档得知ax ...

  8. Vue中封装axios

    参考: https://www.jianshu.com/p/7a9fbcbb1114 https://www.cnblogs.com/dreamcc/p/10752604.html 一.安装axios ...

  9. vue项目中axios的封装和使用

    一.axios的功能特点 在浏览器中发送 XMLHttpRequests 请求 在 node.js 中发送 http请求 支持 Promise API 拦截请求和响应 转换请求和响应数据 支持多种请求 ...

随机推荐

  1. Django 缓存配置的多种方式

    django 的缓存配置有多种方式,主要包含以下几种: 1.开发调试模式 2.内存模式 3.使用文件 4.直接使用数据库 5.使用redis或者memcache 这里主要是记录一下那些不常用,但是在微 ...

  2. Spring-Data-Redis 入门学习

    Spring-Data-Redis 入门学习 参考文章: https://www.jianshu.com/p/4a9c2fec1079 导入 redis 相关依赖 <dependency> ...

  3. python递归和内置方法

    递归:函数调用自身 核心:递进的时候能够达到一个结果,问题规模越来越小(不一定要真正的达到):设置一个条件,能够让最后一次函数调用结束 练习: ​ 第一个人的姓名是16岁,后面每个人的年龄都比前一个大 ...

  4. dos下编辑过sh脚本后无法运行

    情景: 同样的的脚本,在不同的机器下运行有的可以成功,有的运行失败, 前提:sh脚本windos下编辑过. 脚本在windows上修改之后,在每行尾部多了个 ^M,导致sh脚本在执行的时候可能shba ...

  5. 【border相关】【P3426】 [POI2005]SZA-Template

    [border相关][P3426] [POI2005]SZA-Template Description 给定一个字符串 \(S\),要求一个最短的字符串 \(T\),使得 \(S\) 可以由 \(T\ ...

  6. 配置Nginx的防盗链

    实验环境 一台最小化安装的CentOS 7.3虚拟机 配置:1核心/512MB nginx版本1.12.2 一.配置盗链网站 1.启动一台nginx虚拟机,配置两个网站 vim /etc/nginx/ ...

  7. klass-oop

    (1)Klass Klass 简单来说就是 Java 类在 HotSpot 中的 C++ 对等体,主要用于描述对象实例的具体类型.一般 JVM 在加载 class 文件时,会在方法区创建 Klass ...

  8. svn在cleanup 时,提示privious operation has not finished,解决方案

    在updated代码时,svn 提示 上一次操作失败,需要cleanup. 执行cleanup时,提示:cleanup失败,因为上一次操作失败,请先执行cleanup.很幽默的提示. svn的“.sv ...

  9. jenkins pipeline使用方式

    pipeline 使用 使用groovy的一种DSL语言,流程控制 pipeline脚本同其他脚本语言一样,从上到下顺序执行,它的流程控制取决于Groovy表达式,为jenkins用户提供了更巨大的灵 ...

  10. 【IntelliJ IDEA学习之八】版本控制之SVN

    版本:IntelliJIDEA2018.1.4 一.SVN1.安装SVN客户端,command line client tools默认是不安装的,这里要勾选上(不用重新卸载安装,只找到安装程序,选择  ...