Vue 拦截器

拦截器 | Axios中文文档 | Axios中文网icon-default.png?t=N7T8https://www.axios-http.cn/docs/interceptors

一,统一规范

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Result<T> {

    /*编码*/
    private Integer code=200;

    /*消息*/
    private String msg="操作成功";

    /*具体的数据*/
    private T t;

    /*成功的静态方法*/
    public static <T>  Result success(T t){
        return new Result<>(200,"操作成功",t);
    }
    public static <T> Result fail(){
        return new Result<>(500,"操作失败",null);
    }
    public static <T> Result forbidden(){
        return new Result<>(403,"权限不允许",null);
    }
}

弄好之后去访问前端他就报错了

这里他是说没有数据

去前端看一下请求的数据

发现数据全在 t 里

把 t 加上就不报错了

二.响应拦截器

在前端的main.js里面修改

这里面有axios和拦截器

 return response.data.t; 这个地方是res响应的数据路径在这里写

import axios from "axios";

// 后端项目的时候  http://localhost:8899
// axios设置一个默认的路径
// 创建实例时配置默认值
const instance = axios.create({
  // 访问路径的时候假的一个基础的路径
  baseURL: 'http://localhost:8080/'
});
// 添加响应拦截器
instance.interceptors.response.use( response=> {
  // 状态码  500
  if(response.data.code==500){
    // 跳转到 login 组件里面
    myrouter.push({path:"/login"});

    return;
  }
// 数据 直接返回给axios
  return response.data.t;
}, error=> {
  // 超出 2xx 范围的状态码都会触发该函数。
  // 对响应错误做点什么
  return Promise.reject(error);
});
// 起一个名字注册到vue 里面
// Vue. prototype.名字 = axios
Vue.prototype.$axios = instance;

跳转更改路径

三.路由拦截器

在全局变量里加入

localStorage.getItem 是获取当前存储的值与存储的值不一致不让登陆

Vue拦截器是一种机制,它可以在请求发送或响应返回前对其进行拦截和处理。Vue拦截器通常用于添加或修改请求头、请求参数、响应数据等,以实现一些通用的功能,如统一处理错误信息、添加认证信息等。 在Vue中,可以使用axios拦截器来实现拦截器功能。axios是一个基于Promise的HTTP库,可以用于浏览器和Node.js。axios拦截器有两种类型:请求拦截器和响应拦截器。 请求拦截器可以在发送请求前对其进行拦截和处理,可以通过以下方式使用: ```javascript import axios from 'axios'; // 添加请求拦截器 axios.interceptors.request.use(function (config) { // 在发送请求之前做些什么 config.headers.Authorization = getToken(); // 添加认证信息 return config; }, function (error) { // 对请求错误做些什么 return Promise.reject(error); }); ``` 响应拦截器可以在接收到响应后对其进行拦截和处理,可以通过以下方式使用: ```javascript import axios from 'axios'; // 添加响应拦截器 axios.interceptors.response.use(function (response) { // 对响应数据做点什么 return response.data; }, function (error) { // 对响应错误做点什么 return Promise.reject(error); }); ``` 以上代码中,我们使用了axios的interceptors属性来添加拦截器,其中request.use()方法用于添加请求拦截器,response.use()方法用于添加响应拦截器。在拦截器中,我们可以对请求或响应进行一些操作,例如添加请求头、修改请求参数、统一处理错误信息等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值