springboot 解决sa-token跨域问题
时间: 2023-08-28 20:27:33 浏览: 186
在 Spring Boot 中解决 sa-token 跨域问题可以通过配置拦截器来实现。具体实现步骤如下:
1. 创建一个拦截器类,实现 HandlerInterceptor 接口,并重写 preHandle 方法,该方法会在请求处理之前被调用。在该方法中设置响应头,允许跨域访问。
```java
@Component
public class CorsInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Headers", "x-requested-with, content-type, sa-token");
return true;
}
}
```
2. 在 Spring Boot 配置类中注册拦截器。
```java
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Autowired
private CorsInterceptor corsInterceptor;
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(corsInterceptor).addPathPatterns("/**");
}
}
```
这样就完成了 sa-token 跨域问题的解决。注意,以上代码中的 `*` 号是通配符,表示允许所有域名访问。在生产环境中,应该根据实际情况设置允许访问的域名。
阅读全文