解决VUE跨域问题添加配置类

解决VUE跨域问题添加配置类

vue跨域.png
代码内容

1
2
3
4
5
6
7
8
@Configuration
public class WebConfigurer implements WebMvcConfigurer{
@Autowired
private CrossDomain crossDomain;
@Override
public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(crossDomain).addPathPatterns("/**").excludePathPatterns("/xxxxxxxxx6666");
}
}

excludePathPatterns(“/xxxxxxxxx6666”):
相对于一个靶子,除了这个路径下的文件,其他都可以进入

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
@Component
public class CrossDomain extends HandlerInterceptorAdapter {
public CrossDomain() {
super();
}
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
//是否携带cookie
response.setHeader("Access-Control-Allow-Credentials", "true");
//允许跨域的请求方法GET、POST、HEAD等
response.setHeader("Access-Control-Allow-Methods", "*");
//重新预检验跨域的缓存时间(s)Access-Control-Allow-Origin
response.setHeader("Access-Control-Max-Age", "3600");
//允许跨域的请求头
response.setHeader("Access-Control-Allow-Headers", "x-requested-with,content-type");
response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
super.postHandle(request, response, handler, modelAndView);
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
super.afterCompletion(request, response, handler, ex);
}
@Override
public void afterConcurrentHandlingStarted(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
super.afterConcurrentHandlingStarted(request, response, handler);
}
}