一丶首先我们先创建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. Linux centos7安装git

    1.下载git wget https://github.com/git/git/archive/v2.14.1.zip 2.安装依赖 yum -y install zlib-devel openssl ...

  2. token和session的区别及其发展史

    其实token与session的问题是一种时间与空间的博弈问题, session是空间换时间,而token是时间换空间. 一.发展史 很久很久以前,Web 基本上就是文档的浏览而已, 既然是浏览,作为 ...

  3. 第二节:链接mongodb服务器

    查看mongodb的使用说明 版本是3.6.0 options 选项 指的是用户名和密码 address 数据库地址  数据库格式是 ip:端口/数据库 192.168.0.5:999/foo 链接本 ...

  4. vue+element-ui 实现分页(根据el-table内容变换的分页)

    官方例子 官方提示: 设置layout,表示需要显示的内容,用逗号分隔,布局元素会依次显示.prev表示上一页,next为下一页,pager表示页码列表,除此以外还提供了jumper和total,si ...

  5. toj 4602 松鼠聚会

    题目: 草原上住着一群小松鼠,每个小松鼠都有一个家.时间长了,大家觉得应该聚一聚.但是草原非常大,松鼠们都很头疼应该在谁家聚会才最合理. 每个小松鼠的家可以用一个点x,y表示,两个点的距离定义为:点( ...

  6. find命令进阶用法(一)

    -cmin n: 查找 exactly n 分钟前内容或属性被最后修过的文件 -cnewer file: 查找内容或属性的最后修改时间晚于file文件的文件 -ctime n: 查找 **n*24** ...

  7. leetcode-166周赛-5282-转化为全0矩阵的最小反转次数

    题目描述: 方法一:暴力BFS class Solution: def minFlips(self, mat) -> int: R, C = len(mat), len(mat[0]) def ...

  8. 多级xml解析方案

    package com.people.xmlToSql; import java.io.File; import java.io.IOException; import java.io.StringW ...

  9. hdu3518 Boring counting(后缀数组)

    Boring counting 题目传送门 解题思路 后缀数组.枚举每种长度,对于每个字符串,记录其最大起始位置和最小起始位置,比较是否重合. 代码如下 #include <bits/stdc+ ...

  10. l1和l2正则化

    https://blog.csdn.net/tianguiyuyu/article/details/80438630 以上是莫烦对L1和L2的理解 l2正则:权重的平方和,也就是一个圆 l1正则:权重 ...