Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SpringREST控制器-我可以允许拦截器中的COR吗?_Spring_Cors_Spring Restcontroller - Fatal编程技术网

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类中还有什么我必须做的吗

谢谢