Vue的路有拦截与axios的封装
一丶首先我们先创建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的封装的更多相关文章
- 三、VUE项目BaseCms系列文章:axios 的封装
项目开发中 ajax 是不可缺少的,一个好的封装可以减少我们很多的重复代码,维护也更方便.在 vue 开发中我们用的比较多的就是 axios.下面代码是项目中用到的 axios 的封装. http.j ...
- Vue.js(18)之 axios简单封装
基于vue-cli2.x封装axios src目录 axios.js import axios from 'axios' import { Indicator, Toast } from 'mint- ...
- vue 路由拦截、axios请求拦截
路由拦截 项目中,有些页面需要登录后才能进入,例如,在某页面A,用户在操作前需要先进入登录页(此时需要将上一页的地址(/survey/start)作为query存入login页面的地址中,如: htt ...
- axios interceptors 拦截 , 页面跳转, token 验证 Vue+axios实现登陆拦截,axios封装(报错,鉴权,跳转,拦截,提示)
Vue+axios实现登陆拦截,axios封装(报错,鉴权,跳转,拦截,提示) :https://blog.csdn.net/H1069495874/article/details/80057107 ...
- vue axios 简单封装以及思考
先安装 axios npm install axios axios的详细介绍以及用法 就不多说了请 移步 github ➡️ https://github.com/axios/axios 下面是简单 ...
- vue中Axios的封装和API接口的管理
前端小白的声明: 这篇文章为转载:主要是为了方便自己查阅学习.如果对原博主造成侵犯,我会立即删除. 转载地址:点击查看 如图,面对一团糟代码的你~~~真的想说,What F~U~C~K!!! 回归正题 ...
- vue中对axios进行封装
在刚结束的项目中对axios进行了实践(好不容易碰上一个不是jsonp的项目), 以下为在项目中对axios的封装,仅封装了post方法,因为项目中只用到了post,如有需要请自行进行修改 src/c ...
- vue中axios的封装
第一步还是先下载axios cnpm install axios -S 第二步建立一个htttp.js import axios from 'axios'; import { Message } fr ...
- Vue基础知识之vue-resource和axios(三)
vue-resource Vue.js是数据驱动的,这使得我们并不需要直接操作DOM,如果我们不需要使用jQuery的DOM选择器,就没有必要引入jQuery.vue-resource是Vue.js的 ...
随机推荐
- springboot 操作redis
redis五大类型用法 Redis五大类型:字符串(String).哈希/散列/字典(Hash).列表(List).集合(Set).有序集合(sorted set)五种Controller:@Reso ...
- 排查Java高CPU占用原因
近期java应用,CPU使用率一直很高,经常达到100%,通过以下步骤完美解决,分享一下. 方法一: 转载:http://www.linuxhot.com/java-cpu-used-high.htm ...
- Delphi 安装Cnpack cnvcl后界面不断弹出 Memory Manager's list capablity overflow ,please enlarge it!
Delphi 安装Cnpack cnvcl后界面不断弹出 Memory Manager's list capablity overflow ,please enlarge it! 解决方法:删除指定 ...
- Spring框架之接口实现覆盖(接口功能扩展)
在日常开发中,存在着这种一种场景,框架对接口A提供了一个种默认的实现AImpl,随着需求的变更,现今AImpl不能满足了功能需要,这时,我们该怎么办? 当然是修改AImpl的实现代码了,但是,如果它是 ...
- vue工程本地代码请求http发生跨域提示错误解决方法
这个可以使用代理进行跨域,这样看来跨域的方法就有几种了,对于iframe中的用postmassage,对于vue工程中的跨域则使用代理模式. 代理模式配置如下: 在config文件夹下找到index. ...
- 112、TensorFlow初始化变量
# 创建一个变量 # 最简单创建一个变量的方法就是调用 tf.get_variable function import tensorflow as tf # 下面创建了一个三维的张量大小是 [1,2, ...
- Windows 08 R2_创建AD DS域服务(图文详解)
目录 目录 Active Directory概念 创建第一个AD域控制器 搭建DNS服务器 使用Windows窗口程序创建AD域控制器 AD与LDAP的关系 使用Powershell来创建ADDS域控 ...
- OpenCV2.4.8 + CUDA7.5 + VS2013 配置
配置过程主要参考:https://initialneil.wordpress.com/2014/09/25/opencv-2-4-9-cuda-6-5-visual-studio-2013/ 1.为什 ...
- 判断是否是NaN
if (isNaN(parseInt(x))) { alert("非数字"); } else{ alert("数字"); }
- 面试题57:数组中2个数的和(也是leetcode题目)
题目:给定一个整数数列,找出其中和为特定值的那两个数. 你可以假设每个输入都只会有一种答案,同样的元素不能被重用. 示例: 给定 nums = [2, 7, 11, 15], target = 9 因 ...