2016-07-01 25 views
1

localhost:9090でxamppを実行し、ポート80でxamppを実行しています。ポート80からREST-APIへのPUTリクエスト(Spring 4.2私はいくつかのソリューションを見つけたグーグル後SpringとTomcatでCORSを有効にできません

XMLHttpRequest cannot load http://localhost:9090/rest/location/8609d865-d87a-4340-ab87-0e7f90a6fda9 . Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin ' http://localhost ' is therefore not allowed access. The response had HTTP status code 403.

- それらのどれも働いていない:0.2)

ポート9090上で、私はこのエラーを取得します。私が試した何

-Add私の回答に私のコントローラに

<filter> 
    <filter-name>CorsFilter</filter-name> 
    <filter-class>org.apache.catalina.filters.CorsFilter</filter-class> 
</filter> 
<filter-mapping> 
    <filter-name>CorsFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

-Add注釈

@CrossOrigin 
@RestController 
public class LocationController 

-Addヘッダをweb.xmlにフィルタ

return ResponseEntity.status(HttpStatus.OK).header("Access-Control-Allow-Origin", "*").build(); 

-Addは、それらのOPTIONSルート

@RequestMapping(value = "/**", method = RequestMethod.OPTIONS) 
@ResponseBody 
public ResponseEntity options(@PathVariable String locationID) { 
    return ResponseEntity.status(HttpStatus.OK).header("Access-Control-Allow-Origin", "*").build(); 
} 

なし私のために働いていない、私はまだ上記のエラーを受信して​​います。何か案が?

答えて

0

これは私が私の現在のプロジェクトでそれを行っている方法です。

  • 追加pom.xml

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

  • に依存関係を次のようにweb.xml
に次のフィルタを追加しました私は明示的にサポートする方法として PUTを追加

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

お知らせフィルタマッピングリストの一番上に210

<filter> <filter-name>CORS</filter-name> <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class> <init-param> <param-name>cors.supportedMethods</param-name> <param-value>GET, POST, HEAD, OPTIONS, DELETE, PUT</param-value> </init-param> </filter>

  • 追加のfilter-mapping。

    このアプローチの唯一の欠点は、追加の依存関係です。

    spring-webには、CORSフィルタ(org.springframework.web.filter.CorsFilter)の独自の実装があります。私は、同じ方法で春のものを設定することは可能であると確信しています。

関連する問題