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. php+ajax无刷新分页原生ajax实现分页最简单完整实例-完整代码,

    展示页面:index.html <html><script> function ajax_show() { // 获取当前页 var page =1; var xhr = ne ...

  2. attribute和property的区别是什么?

          attribute                                       property 标签属性 对应html                       对象属 ...

  3. 洛谷 p3870 开关 线段树模板

    这两天学了很长时间于是做了一道水题 我就用了模板,就连任何优化都没有 就AC了,复杂度也很爆炸10个点1500多毫秒 这个题就是把lazy[]改成记录下修改的次数,每次修改的时候mod 2,因为反过来 ...

  4. [HNOI2015]亚瑟王(概率期望,DP)

    题目大意:很清晰了,不写了. $1\le T\le 444,1\le n\le 220,0\le r\le 132,0<p_i<1,0\le d_i\le 1000$. $p_i$ 和 $ ...

  5. helm原理

    Helm: helm就相当于Linux的包管理工具yum,但它管理的程序包是一些打包好的清单文件. 其核心术语: Chart:一个helm程序包,它里面可理解为,包含了一下定义Pod的清单文件,这些清 ...

  6. tensorflow学习笔记(三):实现自编码器

    黄文坚的tensorflow实战一书中的第四章,讲述了tensorflow实现多层感知机.Hiton早年提出过自编码器的非监督学习算法,书中的代码给出了一个隐藏层的神经网络,本人扩展到了多层,改进了代 ...

  7. Salesforce 开发整理(四)记录锁定

    如果一个对象的记录在满足某个条件的情况下,希望能对其进行锁定,即普通用户没有权限对其进行编辑操作,记录页面显示如下图 一般会在提交审批,或者项目进行到某个阶段的情况下,由后台进行判断要不要锁定记录,或 ...

  8. Java集合详解6:这次,从头到尾带你解读Java中的红黑树

    <Java集合详解系列>是我在完成夯实Java基础篇的系列博客后准备开始写的新系列. 这些文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查 ...

  9. DDD(Domain Driven Design) 架构设计

    一.为什么要分层 分层架构是所有架构的鼻祖,分层的作用就是隔离,不过,我们有时候有个误解,就是把层和程序集对应起来,就比如简单三层架构中,在你的解决方案中,一般会有三个程序集项目:XXUI.dll.X ...

  10. 【Gamma】 Phylab 展示博客

    目录 [Gamma] Phylab 展示博客 发布地址 网站:PhyLab GitHub Release: WhatAHardChoice/Phylab Gamma版本 一.团队简介 二.项目目标 2 ...