springboot跨域类库
时间: 2023-06-28 19:10:02 浏览: 171
在 Spring Boot 中,可以通过使用 CorsFilter 类来处理跨域请求。CorsFilter 是 javax.servlet.Filter 接口的实现类,它可以让你在 Spring Boot 应用程序中配置跨域资源共享(CORS)。
你可以按照以下步骤使用 CorsFilter 处理跨域请求:
1. 在 Spring Boot 项目中添加以下依赖:
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
```
2. 创建一个 CorsFilter 类来实现跨域请求的处理:
```java
import org.springframework.stereotype.Component;
import javax.servlet.*;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@Component
public class CorsFilter implements Filter {
@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
HttpServletResponse response = (HttpServletResponse) res;
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, Authorization"); // 允许的请求头字段
chain.doFilter(req, res);
}
@Override
public void init(FilterConfig filterConfig) {}
@Override
public void destroy() {}
}
```
3. 在 Spring Boot 主类中添加 @ServletComponentScan 注解,以便启用 CorsFilter 类:
```java
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
@SpringBootApplication
@ServletComponentScan // 扫描 Servlet、Filter、Listener 注解
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
```
通过以上步骤,你就可以在 Spring Boot 应用程序中处理跨域请求了。
阅读全文