1

この質問のフォローアップとして、 Spring3MVCアプリケーションでOPTIONSリクエストを処理する方法を考えています。Springコードのすべてのエンドポイントに対してoption-handling-methodを記述したくありません。ただし、オプションハンドラーの「/ **」への提案されたマッピングは、ハンドラーがまだないエンドポイントに対してのみ機能します。

そこで、クロスサイトアクセスのものを処理するためのOPTIONSリクエストをインターセプトするためにMVCインターセプターを使用することを考えました。しかし、これがこれを行うための最良の方法であるとは想像できません。同じパス上に異なるrequest-methodsを持つ複数のハンドラーなどの他のオプションはありますか?私の気持ちは、これは実際に機能するはずだと私に教えてくれます..(しかし、そうではありません)!?

4

1 に答える 1

1

これに対するネイティブのSpringサポートがSpring4(多分)に設定されているようです。

しかし、その間に私は以下を実装しました:

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 に答える