本解决方法的使用前提是,前端开发使用的是vue,后端使用java(SpringMVC)
在前后端分离开发过程中,可能会出现因跨域而导致每次请求的jsessionid不一致的情况
解决方法:
前端:要在main.js入口文件中,将axios请求的withCredentials属性设置为true,如下:
-
import axios from 'axios'
axios.defaults.withCredentials = true
后端:设置http请求头为:
- httpResponse.setHeader("Access-Control-Allow-Credentials", "true");
- httpResponse.setHeader("Access-Control-Allow-Origin", "http://192.168.199.240:8081");
- httpResponse.setHeader("Access-Control-Allow-Headers", "Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With");
当Access-Control-Allow-Credentials设置为true时,Access-Control-Allow-Origin就不能设置为*了,要改成具体的域,如上