一丶首先我们先创建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. html5 lineTo的使用例子

    demo.js function draw(id) { var CANVAS=document.getElementById(id); var context=CANVAS.getContext('2 ...

  2. 编写mapreduce的程序的套路

    https://blog.csdn.net/qq_42881421/article/details/83543926 给出下面6个经典案例: http://www.cnblogs.com/xia520 ...

  3. 浅谈SAP CRM和Hybris Commerce里的价格架构折扣

    最近Jerry做了一个和价格折扣相关的原型项目,把学到的知识记录下来,以备将来查阅. 在这个原型项目里,我们用React-Native开发了一个移动应用,用户可以在手机上浏览SAP Hybris Co ...

  4. nyoj 471:好多的树(容斥原理)

    题目链接: http://acm.nyist.net/JudgeOnline/problem.php?pid=471 还是直接上代码.. #include<bits/stdc++.h> u ...

  5. springMVC的controller更改了,如何不重启,而自动刷新的解决办法(亲测,一招解决)

    Tomcat  con/ service.xml  配置如下一行代码: <Context reloadable="true"/> </Host> 然后以de ...

  6. php is_file()函数 语法

    php is_file()函数 语法 is_file()函数怎么用? php is_file()函数用于判断给定文件名是否为一个正常的文件,语法是bool is_file ( string $file ...

  7. POJ 3525 Most Distant Point from the Sea (半平面交)

    Description The main land of Japan called Honshu is an island surrounded by the sea. In such an isla ...

  8. Codeforces 803E--Roma and Poker (DP)

    原题链接:http://codeforces.com/problemset/problem/803/E 题意:给一个n长度的字符串,其中'?'可以替换成'D'.'W'.'L'中的任意一种,'D'等价于 ...

  9. 如何写一个bat文件,让他去执行某一个地方的bat文件

    新建一个bat文件,里面编写如下内容:@echo offcall 你bat文件的路径\startup.bat pause --------------------------------------- ...

  10. 点击按钮后URL呗改变

    这里留个坑,Button默认类型是submit.没有写类型的,可能会导致触发Url改变.要么写类型,要么在按钮对应的Js方法里return.