15、vue项目封装axios并访问接口
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 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并访问接口的更多相关文章
- vue项目,axios请求图片接口,接口返回的是文件流的形式,如何转换成图片?
axios .get('/captcha', { params: param, responseType: 'arraybuffer' }) .then(response => { return ...
- vue项目中 axios 和Vue-axios的关系
文章收集于:https://segmentfault.com/q/1010000010812113 在vue项目中,会经常看到如下代码: 今天看到有些项目是这样写的,就有点看不懂了. ----解 ...
- vue 项目如何使用微信分享接口
首先做微信网页都要接入微信sdk: 安装sdk npm install weixin-js-sdk --save 具体可以查看微信公众平台技术文档:https://mp.weixin.qq.com/w ...
- vue项目对axios的全局配置
标准的vue-cli项目结构(httpConfig文件夹自己建的): api.js: //const apiUrl = 'http://test';//测试域名,自己改成自己的 const apiUr ...
- vue-cli新建vue项目安装axios后在IE下报错
使用脚手架新建了一个vue项目,可以在IE9+浏览器运行,但是在添加了axios后,在IE下就报错了 首先是安装axios,在命令行执行: $ npm install axios -s //执行命令, ...
- Django day32 跨域问题,创建vue项目,axios的使用
一:跨域问题 1.同源策略(浏览器的安全策略) 只允许当前页面朝当前域下发请求,如果向其他域发请求,请求可以正常发送,数据也可以拿回,但是被浏览器拦截了 2.cors:只要服务器实现了CORS,就可以 ...
- vue项目使用axios发送请求让ajax请求头部携带cookie
最近做vue项目时遇到登录权限问题,登录以后再发送的请求头部并没有携带登录后设置的cookie,导致后台无法校验其是否登录.检查发现是vue项目中使用axios发送ajax请求导致的.查看文档得知ax ...
- Vue中封装axios
参考: https://www.jianshu.com/p/7a9fbcbb1114 https://www.cnblogs.com/dreamcc/p/10752604.html 一.安装axios ...
- vue项目中axios的封装和使用
一.axios的功能特点 在浏览器中发送 XMLHttpRequests 请求 在 node.js 中发送 http请求 支持 Promise API 拦截请求和响应 转换请求和响应数据 支持多种请求 ...
随机推荐
- USACO Poker Hands
洛谷 P3078 [USACO13MAR]扑克牌型Poker Hands 题目传送门 JDOJ 2359: USACO 2013 Mar Silver 1.Poker Hands JDOJ传送门 题目 ...
- matlab-线性回归
1.调用函数regress(Y,X,alpha),plpha是置信度,如果直接用regress(Y,X)则默认置信度为0.05,Y是一个 的列向量,X是一个 的矩阵,其中第一列是全1向量. 2.函数返 ...
- 原题链接在这里:980. Unique Paths III
原题链接在这里:https://leetcode.com/problems/unique-paths-iii/ 题目: On a 2-dimensional grid, there are 4 typ ...
- 表格插件BootStrap-Table使用教程
Bootstrap table 是一款基于 Bootstrap 的 jQuery 表格插件,功能比较完备,能够实现数据异步获取,编辑,排序等一系列功能. 官网https://bootstrap-tab ...
- python: 添加自定义模块路径 —— 可以使用相对路径
自定义模块时,添加模块路径: sys.path.append('..')
- python 项目实战之Django 邮件发送
发送邮件¶ 虽然 Python 借助 smtplib 模块简化了发送邮件的流程,但是 Django 在其基础上提供了更简化的支持.这些封装意在加快邮件发送,方便在开发时测试发送邮件,在不支持 SMTP ...
- Azure DevOps Server 2019 第一个补丁包(2019.0.1 RTW)
在Azure DevOps Server 2019正式发布后的2周左右时间,微软快速发布了第一个补丁包Azure DevOps Server 2019.0.1 RTW.Azure DevOps Ser ...
- Azure DevOps Server (TFS) 修改工作项附件大小限制
1. 问题描述 当上传工作项附件时,系统提示"附件大小限制" 2.解决方案 2.1 默认设置 默认情况下,Azure DevOps Service和Team Foundation ...
- Alpha冲刺——总结篇
课程信息 课程 软件工程1916|W(福州大学) 团队名称 修!咻咻! 作业要求 项目Alpha冲刺 团队目标 切实可行的计算机协会维修预约平台 团队信息 队员学号 队员姓名 个人博客地址 备注 22 ...
- Learn About Git Bash
git是用来做版本控制的,在本节博客中,主要介绍git的下载,以及简单的配置 Version control is a system that records changes to a file or ...