1

作为对这个问题的跟进,我想知道如何在 spring 3 mvc 应用程序中处理 OPTIONS 请求。我不想为我的 spring 代码中的每个端点编写一个选项处理方法。但是建议的选项处理程序到“/**”的映射仅适用于没有处理程序的端点......

所以我想到了使用 mvc 拦截器来拦截 OPTIONS 请求来处理跨站点访问的东西。但我无法想象这是最好的方法。是否有任何其他选项,例如在同一路径上具有不同请求方法的多个处理程序?我的感觉告诉我这应该真的有效..(但它没有)!?

4

1 回答 1

1

看起来本机 Spring 对此的支持是为Spring 4 (Maybe)设置的。

但是与此同时,我实现了以下内容:

使用 Maven(或手动)引入这种依赖关系:

<dependency>
    <groupId>com.thetransactioncompany</groupId>
    <artifactId>cors-filter</artifactId>
    <version>1.3.2</version>
</dependency>

这有一个实现来捕获所有入站 OPTIONS 请求。在 web.xml 文件中添加以下配置:

<filter>
   <filter-name>CORS</filter-name>
   <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>       
   <init-param>
      <param-name>cors.supportedHeaders</param-name>
      <param-value>Content-Type,Accept,Origin</param-value>
   </init-param>
</filter>

<filter-mapping>
   <filter-name>CORS</filter-name>
   <url-pattern>/*</url-pattern>
</filter-mapping>

我在 /** 方法中看到的问题是更具体的控制器实现将覆盖它。

于 2013-04-15T18:07:49.617 回答