Vue项目中使用Axios
封装请求
在请求或响应被 then 或 catch 处理前拦截它们 import axios from "axios"; // axios 配置 var instance = axios.create({ headers:{ "Content-Type": "application/json", }, timeout: 30000, baseURL: "", //接口请求地址 }) //拦截重复请求 let pending = []; //声明一个数组用于存储每个ajax请求的取消函数和ajax标识 let cancelToken = axios.CancelToken; let removeRepeatUrl = (config) => { let comValue = config.method == "get" ? qs.stringify(config.params) : qs.stringify(config.data); for(let p in pending){ if(pending[p].u === config.url + "&" + config.method + "&" + comValue) { //当前请求在数组中存在时执行函数体 pending[p].f(); //执行取消操作 pending.splice(p, 1); //把这条记录从数组中移除 } } } let saveRepeatUrl = (config) =>{ let comValue = config.method == "get" ? qs.stringify(config.params) : qs.stringify(config.data); console.log(comValue) config.cancelToken = new cancelToken((c)=>{ pending.push({ u: config.url + "&" + config.method + "&" + comValue, f: c }); // 自定义唯一标识 }); } } } // 添加请求拦截器 instance.interceptors.request.use(config => { // 在发送请求之前做些什么,比如传token removeRepeatUrl(config); //在一个ajax发送前执行一下取消操作 saveRepeatUrl(config); //保存请求地址 return config }, error => { // 对请求错误做些什么 console.log(error) // for debug return Promise.reject(error); }) // 添加响应拦截器 instance.interceptors.response.use(response => { removeRepeatUrl(response.config); //执行取消操作,把已经完成的请求从pending中移除 // 对响应数据做点什么 const res = response.data; //对错误代码做处理 return response; }, error => { // 对响应错误做点什么 console.log("err" + error)// for debug return Promise.reject(error); }); export default instance; /** * post 请求方法 * @param url * @param data * @returns {Promise} */ export function post(url, data = {}) { return new Promise((resolve, reject) => { instance.post(url, data).then(response => { //对接口错误码做处理 resolve(response.data); }, err => { reject(err); }) }) } /** * get 请求方法 * @param url * @param data * @returns {Promise} */ export function get(url, data = {}) { return new Promise((resolve, reject) => { instance.get(url, { params: data }) .then(response => { resolve(response); }) .catch(err => { reject(err) }) }) } /** * 封装所有请求 * @param methed * @param url * @param data * @param headers * @returns {Promise} */ export function request(methed,url, data = {},headers) { return new Promise((resolve, reject) => { instance({ method: methed || "post", url:url, params: methed === "get" ? data :"", data: methed !== "get" ? data :"", headers: headers || {"Content-Type":"application/json"}, }) .then(response => { //对接口错误码做处理 resolve(response.data); }) .catch(err => { reject(err) }) }) }
调用方式
在 main.js文件中引用
import {post} from "./utils/http"
Vue.prototype.$post = post;
最好将项目所有接口请求放在一个文件中,方便管理新建文件api.js import {request} from "./axios.js" //用户登录接口 export function userLogin(data){ return request("post","接口地址",data); } 在其他页面引用 import {userLogin} from "./api.js" userLogin({}).then(res=>{ });axios跨域
在config的index.js文件中的dev属性中添加一个属性proxyTable:proxyTable{ "/api":{ target:"URL", changeOrigin:true, pathRewrite:{ "^/api":"" } } }
然后在axios里面访问 /api/xxx 就可以成功访问了这种方式只能本地测试环境运行,对正式环境无效(需要配置环境生效)
名门修谱互联网家谱发起者,领导修谱文化传统纸质家谱家谱作为见证一个家族发展的历史书,它以图文并茂的形式记载了整个家族源承历史和血脉印记,对家族文化传承子女培育社会德育体系完善等都有其不可取代的功能与价值。但是传统的修谱
名门修谱嗣子祧子都见过,清代家谱上面的蜈蚣子是什么?家谱中的嗣子祧子凡是有参加过修谱,或者是修过谱的宗亲。在谱书上一定见过嗣子祧子继子养子这些称呼。这些不同的称呼,对应家族中辈分之间不同的关系,一旦写错或者用错,总会闹出不少的笑话。
名门修谱以前家谱秘不示人,如今想法变了传统家谱提到修家谱修族谱,近几年也是一个比较火热的话题。主要原因还是因为家谱是一个家族的生命史。它不仅记录着该家族的来源迁徙的轨迹,还包罗了该家族生息繁衍婚姻文化族规家约等历史文化
名门修谱家谱上面继子和寄子,有啥区别?家谱中的嗣子祧子家谱作为一个家族文化的传承,其中很多称呼,都是有讲究的。例如,都是给别人做儿子,却嗣子祧子继子养子等称呼。看过老谱的人可能会发现,在很多家谱中,有继子,也有寄子。这
名门修谱姓氏文化和家谱文化联手,商机来了寻根圣地姓氏文化,是指与姓氏有关的物质文化和非物质文化,其内容包括姓氏起源姓氏流变家族播迁名人事迹与遗迹家谱宗祠世系家训郡望堂号堂联字辈等等,以及由此形成的尊祖敬宗报本反始寻根问祖
名门修谱修家谱也有口碑差的时候修谱修家谱明明是件纪念先祖,缅怀祖宗的家族大事,为什么在很多农村,却被看成是一种不吉利的事?这里面最主要的原因,还是在于有些人对于修家谱的认知不深,所以被一些打着修家谱口号的族人,
名门修谱从2万到200万?修谱到底该要多少钱?传统纸谱你们的家族里有祖传下来的家谱吗?这种简单的问题,近几年随着修家谱慢慢的兴起,在很多的宗亲家族之间,也开始流传。家谱作为一个家族历史的载体,虽然意义重大,但是在现实中却越来越
名门修谱修谱有哪些痛点?如何修好一本家谱?传统家谱家谱作为中国传统文化的一种传承,其非常重视血缘亲属的关系。从古至今,从皇室到普通家庭,几乎每个家族都有修家谱的习惯,这也是儒家思想中家国天下的具体表现。作为记载父系家族人物
去饥饿营销的路上,小米MIX4的曝光再次勾起网民惊讶的目光?在手机圈里面说起性价比无人不服小米!这也是为什么米粉们要送一个雷布斯的雅号给小米创始人雷军的初衷之一。正是凭借这一优势,小米果真盘活了整个国产手机市场,开创了一个全新的消费习惯。正
听说只有10的人能瓜分余额宝100亿体验金?女朋友生日可以不知道,但余额宝的生日要是不知道,你可能错过一个亿!原来为庆祝6周年生日,余额宝特推出了一个惊喜活动堆堆乐,体验金再次火爆上线,上支付宝搜666就参与,体验金金额高达
360疑似进军影视业巴迪龙动画能否推动国产动画行业发展?说到国内动画产业,自从1922年摄制的第一部动画舒振东华文打字机揭开了中国动画史的一页以后,国内动画就出现了井喷的现象,发展至今,国内动画作品已经数不胜数。不过数量虽多,但真正有影