欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

解决前后端分离项目集成shiro后,上传文件需要登录问题

程序员文章站 2022-05-04 19:21:55
解决前后端分离项目集成shiro后,上传文件需要登录问题原因:因为前后端分离项目不能通过cookie获取session对象,当你已经登录过后发送上传文件的请求的时候shiro检测到你的请求头中没有当前登录过后的sessionid,所以会判断出当前是未登录状态解决:1、在main.js中添加请求头//ajaximport axios from 'axios'axios.defaults.baseURL="http://localhost:80";Vue.prototype.$http=axios...

解决前后端分离项目集成shiro后,上传文件需要登录问题

原因:因为前后端分离项目不能通过cookie获取session对象,当你已经登录过后发送上传文件的请求的时候shiro检测到你的请求头中没有当前登录过后的sessionid,所以会判断出当前是未登录状态

解决:

1、在main.js中添加请求头

//ajax
import axios from 'axios'
axios.defaults.baseURL="http://localhost:80";
Vue.prototype.$http=axios;

axios.interceptors.request.use(config => {
    //从前端项目的session存储中获取sessionid
    let sessionid = sessionStorage.getItem("sessionid");
    //添加请求头
    config.headers.SESSIONID = sessionid;
    return config;
},error => {
    return Promise.reject(error);
});

2、在el-upload标签上添加 :headers="headers"属性

<el-upload
           class="upload-demo"
           action="http://localhost:80/uploadFile"
           :on-remove="handleRemove"
           :multiple="false"
           :limit="1"
           :headers="headers"
           name="annexFile"
           :on-success="uploadSuccess"
           :file-list="fileList">
    <el-button size="small" type="primary">点击上传</el-button>
</el-upload>
 //设置请求头
headers: {
//获取已经登录后的请求头信息
'SESSIONID': sessionStorage.getItem("sessionid")
}

本文地址:https://blog.csdn.net/ld12g/article/details/107497892

相关标签: spring