Spring和HTTP Options请求

时间:2012-06-19 07:21:25

标签: java spring http

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

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

1 个答案:

答案 0 :(得分:1)

看起来像Spring 4 (Maybe)的原生Spring支持。

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

使用Maven(or manually)获取此依赖性:

<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>

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