一丶首先我们先创建api与utils两个文件夹

二丶api文件夹里面新建文件api.js

 import request from "../utils/http"
import qs from "qs" //getdata是我自己封装的,名字可以随意写,按照自己的习惯写即可.
export function getdata(parmas){
return request({
//url写暴露出来的接口
url:"https://blogs.zdldove.top/Home/Apis/listWithPage",
//method是请求的方式
method:"post",
//注意:如果我们请求方式是post,那么下面这一行需要转换一下,具体看需求,如果是get请求直接写一个parmas即可
data:qs.stringify(parmas)
})
}

三丶下面写utils文件夹里面的内容

  1创建http.js文件,代码如下

  

 import axios from "./request"
let baseURL = "" let ajax = function(config){
config.url = baseURL + config.url return new Promise((resolve,reject)=>{
var options = {
method: config.method,
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
data: config.data
}
axios(config.url, options).then((res)=>{
resolve(res)
})
})
} export default ajax;

  2创建request.js文件,代码如下

 import axios from "axios"
import router from "../router" //axios配置 axios.defaults.timeout = 5000
// axios.defaults.baseURL = ""
axios.defaults.baseURL = "http://localhost:8080/" //地址
//http request 拦截器 axios.interceptors.request.use(
config => {
return config
},
err => {
return Promise.reject(err)
}
) //http response 拦截器 axios.interceptors.response.use(
response => {
return response
},
error => {
if(error.response) {
switch (error.response.status){
case 404:
localStorage.removeItem('username');
router.currentRoute.path !== "/" &&
router.replace({
path:"/"
})
}
}
return Promise.reject(error.response.data)
}
)
export default axios

四丶页面请求数据,代码如下

 <template>
<div class="home">
{{list}}
</div>
</template> <script>
import {getdata} from "../api/api"
export default {
data(){
return{
list:[], }
},
created(){
getdata().then((res)=>{
this.list=res
})
},
methods:{ }
}
</script>

由于能力有限,上面是个人的全部理解.

Vue的路有拦截与axios的封装的更多相关文章

  1. 三、VUE项目BaseCms系列文章:axios 的封装

    项目开发中 ajax 是不可缺少的,一个好的封装可以减少我们很多的重复代码,维护也更方便.在 vue 开发中我们用的比较多的就是 axios.下面代码是项目中用到的 axios 的封装. http.j ...

  2. Vue.js(18)之 axios简单封装

    基于vue-cli2.x封装axios src目录 axios.js import axios from 'axios' import { Indicator, Toast } from 'mint- ...

  3. vue 路由拦截、axios请求拦截

    路由拦截 项目中,有些页面需要登录后才能进入,例如,在某页面A,用户在操作前需要先进入登录页(此时需要将上一页的地址(/survey/start)作为query存入login页面的地址中,如: htt ...

  4. axios interceptors 拦截 , 页面跳转, token 验证 Vue+axios实现登陆拦截,axios封装(报错,鉴权,跳转,拦截,提示)

    Vue+axios实现登陆拦截,axios封装(报错,鉴权,跳转,拦截,提示) :https://blog.csdn.net/H1069495874/article/details/80057107 ...

  5. vue axios 简单封装以及思考

    先安装 axios npm install axios axios的详细介绍以及用法 就不多说了请 移步 github ➡️  https://github.com/axios/axios 下面是简单 ...

  6. vue中Axios的封装和API接口的管理

    前端小白的声明: 这篇文章为转载:主要是为了方便自己查阅学习.如果对原博主造成侵犯,我会立即删除. 转载地址:点击查看 如图,面对一团糟代码的你~~~真的想说,What F~U~C~K!!! 回归正题 ...

  7. vue中对axios进行封装

    在刚结束的项目中对axios进行了实践(好不容易碰上一个不是jsonp的项目), 以下为在项目中对axios的封装,仅封装了post方法,因为项目中只用到了post,如有需要请自行进行修改 src/c ...

  8. vue中axios的封装

    第一步还是先下载axios cnpm install axios -S 第二步建立一个htttp.js import axios from 'axios'; import { Message } fr ...

  9. Vue基础知识之vue-resource和axios(三)

    vue-resource Vue.js是数据驱动的,这使得我们并不需要直接操作DOM,如果我们不需要使用jQuery的DOM选择器,就没有必要引入jQuery.vue-resource是Vue.js的 ...

随机推荐

  1. springboot 操作redis

    redis五大类型用法 Redis五大类型:字符串(String).哈希/散列/字典(Hash).列表(List).集合(Set).有序集合(sorted set)五种Controller:@Reso ...

  2. 排查Java高CPU占用原因

    近期java应用,CPU使用率一直很高,经常达到100%,通过以下步骤完美解决,分享一下. 方法一: 转载:http://www.linuxhot.com/java-cpu-used-high.htm ...

  3. Delphi 安装Cnpack cnvcl后界面不断弹出 Memory Manager's list capablity overflow ,please enlarge it!

    Delphi 安装Cnpack cnvcl后界面不断弹出 Memory Manager's list capablity overflow ,please enlarge it! 解决方法:删除指定  ...

  4. Spring框架之接口实现覆盖(接口功能扩展)

    在日常开发中,存在着这种一种场景,框架对接口A提供了一个种默认的实现AImpl,随着需求的变更,现今AImpl不能满足了功能需要,这时,我们该怎么办? 当然是修改AImpl的实现代码了,但是,如果它是 ...

  5. vue工程本地代码请求http发生跨域提示错误解决方法

    这个可以使用代理进行跨域,这样看来跨域的方法就有几种了,对于iframe中的用postmassage,对于vue工程中的跨域则使用代理模式. 代理模式配置如下: 在config文件夹下找到index. ...

  6. 112、TensorFlow初始化变量

    # 创建一个变量 # 最简单创建一个变量的方法就是调用 tf.get_variable function import tensorflow as tf # 下面创建了一个三维的张量大小是 [1,2, ...

  7. Windows 08 R2_创建AD DS域服务(图文详解)

    目录 目录 Active Directory概念 创建第一个AD域控制器 搭建DNS服务器 使用Windows窗口程序创建AD域控制器 AD与LDAP的关系 使用Powershell来创建ADDS域控 ...

  8. OpenCV2.4.8 + CUDA7.5 + VS2013 配置

    配置过程主要参考:https://initialneil.wordpress.com/2014/09/25/opencv-2-4-9-cuda-6-5-visual-studio-2013/ 1.为什 ...

  9. 判断是否是NaN

    if (isNaN(parseInt(x))) { alert("非数字"); } else{ alert("数字"); }

  10. 面试题57:数组中2个数的和(也是leetcode题目)

    题目:给定一个整数数列,找出其中和为特定值的那两个数. 你可以假设每个输入都只会有一种答案,同样的元素不能被重用. 示例: 给定 nums = [2, 7, 11, 15], target = 9 因 ...