法一:
@WebFilter(urlPatterns = { "/api/*" })
public class CORSFilter extends OncePerRequestFilter {
private static final String encoding = "UTF-8";
@Override
protected void doFilterInternal(HttpServletRequest req, HttpServletResponse res, FilterChain chain)
throws ServletException, IOException {
req.setCharacterEncoding(encoding);
res.setCharacterEncoding(encoding);
res.setHeader("Access-Control-Allow-Origin", "*");
res.setHeader("Access-Control-Allow-Methods", "POST, GET, PUT, OPTIONS, DELETE");
res.setHeader("Access-Control-Allow-Headers", "*");
chain.doFilter(req, res);
}
}
法二:
@Configuration
public class GlobalConfig {
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurerAdapter() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**").allowedMethods("GET", "POST", "PUT", "DELETE").allowedOrigins("*")
.allowedHeaders("*");
}
};
}
}
3,法三(终极大杀招):
在controller前加上如下注解即可
import org.springframework.web.bind.annotation.CrossOrigin;
@CrossOrigin
example:
@RestController
@RequestMapping("/event")
@CrossOrigin
public class EventController {+∞}