SpringSession,右边这个"spring-session-data-redis",是怎么实现共享的?存放在 redis 里就是共享吗?
但是我在使用过程中获取 session 还是 request.getSession(),那我要怎么根据 session.getId()来获得我想要的 session 呢?
我觉得上面的问题只要是我不理解跨域是怎么回事。我现在遇到了这么一个问题。有一个后台访问的端口是 8081,而前台的页面是在 80 端口上的,所以前台所有的 ajax 请求,我在后台 request.getSession().getId()都是不一样的,这种情况就是跨域问题吧?
一开始的时候找到一些解决跨域的方法,但是好像没有什么效果,而且自己也没理解是什么原理。自己猜测跨域的原因是服务器禁止了一些不符合要求的请求访问,这些解决跨域的方法是允许这些请求的访问。请问这个理解对么?
@Configuration
public class CorsConfig {
private CorsConfiguration buildConfig() {
CorsConfiguration corsConfiguration = new CorsConfiguration();
corsConfiguration.addAllowedOrigin("*");
corsConfiguration.addAllowedHeader("*");
corsConfiguration.addAllowedMethod("*");
return corsConfiguration;
}
@Bean
public CorsFilter corsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", buildConfig());
return new CorsFilter(source);
}
}
@Configuration
public class CrossInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object o) throws Exception {
if (request.getHeader(HttpHeaders.ORIGIN) != null) {
String origin = request.getHeader("Origin");
response.addHeader("Access-Control-Allow-Origin", origin);
response.addHeader("Access-Control-Allow-Credentials", "true");
response.addHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE, PUT,PATCH, HEAD");
response.addHeader("Access-Control-Allow-Headers", "Content-Type");
response.addHeader("Access-Control-Max-Age", "3600");
}
return true;
}
}
不好意思,我有点找不到学习的方向了,希望各位大大给我指点一下,不要嫌弃我伸手呀。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.