springboot跨域配置 青戈
时间: 2023-12-12 19:35:52 浏览: 48
以下是三种SpringBoot解决跨域问题的方法:
1.使用注解@CrossOrigin
```java
@RestController
@RequestMapping("/api")
@CrossOrigin(origins = "http://localhost:8080")
public class ApiController {
//...
}
```
2.使用WebMvcConfigurer
```java
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/api/**")
.allowedOrigins("http://localhost:8080")
.allowedMethods("GET", "POST")
.allowCredentials(false).maxAge(3600);
}
}
```
3.使用Filter
```java
@Component
public class CorsFilter implements Filter {
@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
HttpServletResponse response = (HttpServletResponse) res;
HttpServletRequest request = (HttpServletRequest) req;
response.setHeader("Access-Control-Allow-Origin", "http://localhost:8080");
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Headers", "Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With");
chain.doFilter(req, res);
}
}
```