SpringBoot配置后端CORS 响应头
时间: 2023-11-19 08:43:22 浏览: 176
SpringBoot实现前后端分离的跨域访问(CORS)
在Spring Boot中配置CORS(跨源资源共享)响应头可以通过添加自定义过滤器来实现。下面是一个简单的示例:
首先,创建一个名为`CorsFilter`的类,并实现`javax.servlet.Filter`接口。在该类中,我们设置响应头来允许跨域请求:
```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", "GET, POST, PUT, DELETE, OPTIONS"); // 允许的请求方法
response.setHeader("Access-Control-Allow-Headers", "Authorization, Content-Type, X-Requested-With, X-Auth-Token, Origin, Accept"); // 允许的请求头
response.setHeader("Access-Control-Max-Age", "3600"); // 预检请求的有效期,以秒为单位
chain.doFilter(req, res);
}
// 其他过滤器方法(init、destroy)的实现略
}
```
然后,确保将该过滤器添加到Spring Boot应用程序的配置中。可以在主类中添加`@ServletComponentScan`注解,以启用自动扫描并注册该过滤器:
```java
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
@SpringBootApplication
@ServletComponentScan // 启用自动扫描和注册servlet组件
public class YourApplication {
public static void main(String[] args) {
SpringApplication.run(YourApplication.class, args);
}
}
```
这样,每个进入应用程序的请求都会通过`CorsFilter`进行过滤,并设置了CORS响应头,从而允许跨域请求。
请注意,这只是一个简单的示例。实际情况可能会根据你的应用程序和需求而有所不同。你可以根据需要自定义`CorsFilter`中的响应头内容。
阅读全文