SpringREST控制器-我可以允许拦截器中的COR吗?
我有一个拦截器:SpringREST控制器-我可以允许拦截器中的COR吗?,spring,cors,spring-restcontroller,Spring,Cors,Spring Restcontroller,我有一个拦截器: @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new RequestInterceptor()); } 我可以在上面的RequestInterceptor.java中添加我的CORS配置吗?像这样: public class RequestInterceptor extends HandlerIn
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new RequestInterceptor());
}
我可以在上面的RequestInterceptor.java中添加我的CORS配置吗?像这样:
public class RequestInterceptor extends HandlerInterceptorAdapter
{
...
public boolean preHandle(
HttpServletRequest request,
HttpServletResponse response,
Object handler) throws Exception {
...
...
if (request.getMethod().equals("OPTIONS")) {
response.setHeader("Access-Control-Allow-Origin", "http://localhost:9090");
response.setHeader("Access-Control-Allow-Methods", "POST, GET, PUT, OPTIONS, DELETE");
response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
response.setHeader("Access-Control-Expose-Headers", "*");
response.setHeader("Access-Control-Allow-Credentials", "true");
response.setHeader("Access-Control-Max-Age", "4800");
}
...
return true;
}
}
我不想要这些方法中的任何一种,因为出于某种原因,它们不适合我:
@CrossOrigin
OR
WebMvcConfigurerAdapter -> addCorsMapping()
对我来说唯一有效的方法就是使用CORSFilter并将其映射到web.xml中。但这让我想到拦截器也是一种过滤器,不是吗?那么,当拦截器本身可以做的时候,为什么还要添加过滤器和拦截器呢
无论如何,我尝试了上面的代码,我的请求登录到服务器,rest控制器方法正在运行,但我在我的ReactJs页面上看到了以下响应:
SEC7120: Origin http://localhost:9090 not found in Access-Control-Allow-Origin header.
SCRIPT7002: XMLHttpRequest: Network Error 0x80070005, Access is denied.
我错过了什么?在CORS的RequestInterceptor.java类中还有什么我必须做的吗
谢谢