springboot+vue 跨域后session获取不到
时间: 2023-07-30 22:10:12 浏览: 123
在跨域请求中,由于浏览器的安全策略限制,无法直接访问其他域名下的session信息,因此需要进行一些配置来解决该问题。
在Spring Boot中,可以通过配置`CorsFilter`来解决跨域问题,并允许浏览器发送带有凭据的请求(即携带session信息)。
首先,需要在后端代码中添加如下配置:
```java
@Configuration
public class CorsConfig {
@Bean
public CorsFilter corsFilter() {
final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
final CorsConfiguration config = new CorsConfiguration();
config.setAllowCredentials(true); // 允许发送带有凭据的请求
config.addAllowedOrigin("*"); // 允许来自所有域名的请求
config.addAllowedHeader("*"); // 允许发送所有头信息
config.addAllowedMethod("*"); // 允许发送所有请求方法
source.registerCorsConfiguration("/**", config);
return new CorsFilter(source);
}
}
```
然后,在前端代码中需要设置`withCredentials`为`true`,来允许发送带有凭据的请求。例如,使用axios发送请求时,可以添加如下配置:
```javascript
axios.defaults.withCredentials = true;
```
这样就可以在跨域请求中获取到session信息了。
阅读全文