vue fromData提交表单(文件)的同时 axios通过将token封装一起发送,Springboot后端拦截器通过request.getParameter获取,Redis验证token

一、前端:

1、在封装好的axios接口:

 

import axios from 'axios'

axios.defaults.withCredentials = true;// 允许跨域携带cookie

// 创建axios实例
const request = axios.create({
    // axios中请求配置有baseURL选项,表示请求URL公共部分
        baseURL: 'http://localhost:8088/zupu',
        // 超时取消
        timeout: 5000,
        // 设置Content-Type,规定了前后端的交互使用json
        // headers: {'Content-Type': 'application/json;charset=utf-8'}
})
export default request

2、在子文件中写接口请求配置

import request from "@/api";

let token=window.localStorage.getItem("zupu-token")
// 动态发布,上传图片
export function insetDyMyImg(datas) {
    return request({
        url: '/inset/file',
        method: 'post',
        data: datas,
		params: {
		    token: token,
		},
		headers: { 'Content-Type': 'multipart/form-data' }
    })
}

3、.vue文件中调用接口:

(1)引入接口:

import {insetDyMyImg} from '@/api/dynamic/dymy'

(2)调用接口:

let formdata = new FormData();
formdata.append("fileimg", file);
insetDyMyImg({
fileimg:file
}).then( res => {
	console.log(res.data)
}).catch( err => {
	console.log(err)
})

二、SprinBoot后端

拦截器:

public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {

        response.setContentType("text/html;charset=utf-8");    //包含第一种方式的两个功能
        request.setCharacterEncoding("UTF-8");
        response.setCharacterEncoding("UTF-8");
        response.setContentType("text/html; charset=UTF-8");

        response.setHeader("Access-Control-Allow-Origin",request.getHeader("Origin"));//支持跨域请求
        response.setHeader("Access-Control-Allow-Methods", "*");
        response.setHeader("Access-Control-Allow-Credentials", "true");//是否支持cookie跨域
        response.setHeader("Access-Control-Allow-Headers", "Authorization,Origin, X-            Requested-With, Content-Type, Accept,Access-Token");//Origin, X-Requested-With, Content-    Type, Accept,Access-Token

    String token = request.getParameter("token");
    System.out.println("拦截器=》用户提交koken:"+token);
    //判断token是否存在
    if(redisUtil.hasKey(token)) {
       System.out.println("拦截器=》用户提交koken:"+token);
       return true;
    }
    request.getReader();
    System.out.println("拦截器=》token不通过!");
    returnData(response,2000,"您长时间未操作,请重新登录");
    return false;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值