SpringBoot CORS过滤器未应用
我实际上在做一个SrpingBoot后端 为了解决CORS问题,我使用了随处可见的简单过滤器SpringBoot CORS过滤器未应用,spring,cors,spring-boot,Spring,Cors,Spring Boot,我实际上在做一个SrpingBoot后端 为了解决CORS问题,我使用了随处可见的简单过滤器 @Component public class CORSResponseFilter implements Filter { @Override public void init(FilterConfig arg0) throws ServletException {} @Override public void doFilter(ServletRequest req
@Component
public class CORSResponseFilter implements Filter {
@Override
public void init(FilterConfig arg0) throws ServletException {}
@Override
public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException {
HttpServletResponse response=(HttpServletResponse) resp;
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", "Origin, X-Requested-With, Content-Type, Accept");
chain.doFilter(req, resp);
}
@Override
public void destroy() {}
}
此过滤器添加到此处的配置中:
public class ApplicationConfiguration extends ResourceConfig {
public ApplicationConfiguration() {
super();
// Create a recursive package scanner
PackageNamesScanner resourceFinder = new PackageNamesScanner(
new String[] { "X.service" }, true);
// Register the scanner with this Application
registerFinder(resourceFinder);
register(JacksonFeature.class);
// Mise en place du filtre
register(CORSResponseFilter.class);
}
}
但我还是犯了这个错误:
No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost' is therefore not allowed access.
我遗漏了什么?端口有问题,与代码无关。只需将其作为bean添加到配置中……问题解决了。请求没有在正确的端口上完成。谢谢你的回答。@Apédémak如果你的问题解决了,你能写一个答案,这样它就不会显示为未回答吗?我会,我只是在两天之前无法验证。嗯,我不记得确切的问题,但我知道我的代码工作得很好。此错误是由于两个端口之间发生冲突,并且客户端未到达我的后端服务器。我的问题也解决了,我需要在我的控制器中处理HTTP选项请求(飞行前请求)@mohi你是如何处理飞行前的请求的?@Jayraj也许这会有所帮助:我在控制器中有一些类似的方法来处理选项请求