axios带有请求拦截器,避免在每个请求里面加loading重复操作,可以封装进去,在请求开始时加载loading层,请求结束关闭,loading层用vux的loading加载

axios.js

import axios from 'axios'
import Vue from 'vue' // 超时时间
axios.defaults.timeout = 15000;
// axios.defaults.withCredentials=true;
// http请求拦截器
axios.interceptors.request.use(config => {
Vue.$vux.loading.show({
text: 'Loading'
})
return config
}, error => {
setTimeout(() => {
Vue.$vux.loading.hide();
Vue.$vux.toast.text('加载超时', 'middle')
},3000)
return Promise.reject(error)
})
// http响应拦截器
axios.interceptors.response.use(data => {// 响应成功关闭loading
Vue.$vux.loading.hide()
return data
}, error => {
setTimeout(() => {
Vue.$vux.loading.hide()
Vue.$vux.toast.text('请求失败', 'middle')
},1000)
return Promise.reject(error)
}) export default axios;

封装get和post方法 axios.service.js

import axios from './axios';

class myAxios{

  getUrl(url){
return `${__ce.baseURL}${url}`; // 打包时用这个 __ce.baseURL
// return `/api${url}`; // 防止跨域,开发环境用这个代理
}; //公共ajax;
postServer(opt) { let data = {};
if (opt.data) {
data = opt.data;
}
axios.post(opt.url, data).then((response) => {
console.log(response);
if(!response.data.status){
return;
}
if (opt.onSuccess) {
opt.onSuccess(response);
}
}).catch(error => {
if (opt.onFailed) {
opt.onFailed(error);
}
});
} // get 请求
getServer(opt) {
let data = {};
if (opt.data) {
data = opt.data;
}
axios.get(opt.url, {params: data}).then((response) => {
if (opt.onSuccess) {
opt.onSuccess(response);
}
}).catch(error => {
if (opt.onFailed) {
opt.onFailed(error);
}
});
} setData(opt) {
let data = {};
if (opt.data) {
data = opt.data;
}
return data;
} } export default myAxios;

封装方法~

import myAxios from  './axios.service'
const myAxiosMethods = new myAxios(); class RecordServer{ // 查询订单 -- post方法
sendMiceIndentSearchServer(opt){
const data = myAxiosMethods.setData(opt);
const url = myAxiosMethods.getUrl('/search');// 这里的/search是后端给的接口地址
myAxiosMethods.postServer({url, data, onSuccess: opt.onSuccess, onFailed: opt.onFailed});
} export default RecordServer;

在页面中使用

const recordSever = new RecordServer()

methods:{
_sendSearchServer(){ // 在需要的地方调用这个方法
recordServer.sendSearchServer({
data: this.params, // params是这个接口需要传递给后台的参数
onSuccess: (res) => {
console.log(res)
},
onFailed: (err) => {
console.log(err)
}
})
}
}

vue axios配置 发起请求加载loading请求结束关闭loading的更多相关文章

  1. axios(封装使用、拦截特定请求、判断所有请求加载完毕)

    博客地址:https://ainyi.com/71 基于 Promise 的 HTTP 请求客户端,可同时在浏览器和 Node.js 中使用 vue2.0之后,就不再对 vue-resource 更新 ...

  2. 鸿蒙的fetch请求加载聚合数据的前期准备工作-手动配置网络权限

    目录: 1.双击打开"config.json"文件 2.找到配置网络访问权限位置1 3.配置内容1 4.默认访问内容是空的 5.添加配置内容2 6.复制需要配置的网络二级URL 7 ...

  3. jqGrid subGrid配置 如何首次加载动态展开所有的子表格

    有时候需求需要默认加载表格的时候把子表格的数据也显示出来,经过研究相关SubGrids API配置如下: 属性 类型 描述 默认值 subGrid boolean 设置为true启用子表格.如果启用子 ...

  4. jQuery.ajax( options ) : 通过 HTTP 请求加载远程数据

    jQuery.ajax( options ) : 通过 HTTP 请求加载远程数据 这个是jQuery 的底层 AJAX 实现.简单易用的高层实现见 $.get, $.post 等. $.ajax() ...

  5. Entity Framework加载相关实体——延迟加载Lazy Loading、贪婪加载Eager Loading、显示加载Explicit Loading

    Entity Framework提供了三种加载相关实体的方法:Lazy Loading,Eager Loading和Explicit Loading.首先我们先来看一下MSDN对三种加载实体方法的定义 ...

  6. vue-loader 调用了cssLoaders方法配置了css加载器属性。

    module: { loaders: [ // 这里也是相应的配置,test就是匹配文件,loader是加载器, { test: /\.vue$/, loader: 'vue' }, { test: ...

  7. 三、js提交请求加载启动动画、请求完成成功回调、注销加载动画

    1.通过Query  post方式进行异步请求方法 jQuery.post(url, [data], [callback], [type]) 参数说明: url:发送请求地址 data:待发送 Key ...

  8. Smart3D系列教程7之 《手动配置S3C索引加载全部的瓦片数据》

    一.前言 迄今为止,Wish3D已经出品推出了6篇系列教程,从倾斜摄影的原理方法.采集照片的技巧.Smart3D各模块的功能应用.小物件的照片重建.大区域的地形重建到DSM及正射影像的处理生产,立足于 ...

  9. vue 实现tab切换动态加载不同的组件

    vue 实现tab切换动态加载不同的组件 使用vue中的is特性来加载不同的组件.具体看如下代码:这个功能对于vue比较复杂的页面可以使用上,可以把一个页面的功能拆分出来,使代码更简单.使用方式具体看 ...

随机推荐

  1. unity, 由Matrix4x4提取Quaternion和Vector3 及 由Quaternion,Vector3构造Matrix4x4

    一,由Matrix4x4提取Quaternion和Vector3 Quaternion getRotationFromMatrix(Matrix4x4 m) {         return Quat ...

  2. Fastboot和Recovery

    Fastboot是什么意思?从字面意思来讲,Fastboot是『快速启动』的意思.通常大家所讨论的Fastboot,通常都是说安卓手机的Fastboot模式.在安卓手机中fastboot是一种比rec ...

  3. ENGINE_API CXSroll

    #ifndef __XSROLL_H__ #define __XSROLL_H__ #include "CocoHead.h" #include "XWindow.h&q ...

  4. ov5640 video capture时,vfe_v4l2.ko模块挂掉问题分析

    1.问题描述 在r16 tina平台,基于ov5640获取摄像头数据时,vfe_v4l2.ko模块挂掉. 2.配置信息 2.1上层应用设置的像素格式为V4L2_PIX_FMT_YUYV,分辨率为480 ...

  5. MYSQL数据库的导出的几种方法

    mysql的数据导出几种方法   从网上找到一些问题是关于如何从MySQL中导出数据,以便用在本地或其它的数据库系统之上:以及 将现有数据导入MySQL数据库中. 数据导出 数据导出主要有以下几种方法 ...

  6. oracle锁表,杀死进程

    查询锁表数据 select object_name,machine,s.sid,s.serial#from v$locked_object l,dba_objects o ,v$session swh ...

  7. imooc 生鲜超市笔记

    1.启动前端项目(Vue.js) cnpm run dev

  8. Hadoop默认端口表及用途

      端口 用途 9000 fs.defaultFS,如:hdfs://172.25.40.171:9000 9001 dfs.namenode.rpc-address,DataNode会连接这个端口 ...

  9. 【pywin32总结】

    #下面是必备的#注意!所有方法后面都要加括号()!!! import win32com from win32com.client import Dispatch,constants w = win32 ...

  10. Matlab三维绘图

    三维绘图 1 三维绘图指令 类 别 指 令 说 明 网状图 mesh, ezmesh 绘制立体网状图 meshc, ezmeshc 绘制带有等高线的网状图 meshz 绘制带有“围裙”的网状图 曲面图 ...