1 つのドメインに対してクロス オリジン リクエストを許可したいと考えています。私のプロジェクトでは Spring を使用しているため、新しい CORS サポートを利用したいと考えています。
4.2.0
すべてのspringframework
依存関係にバージョンを使用しています。
https://spring.io/blog/2015/06/08/cors-support-in-spring-framework#disqus_threadの例に従い、最初のバージョンを試しました。私のコントローラーの注釈は次のようになります。
@CrossOrigin(origins = "http://fiddle.jshell.net/", maxAge = 3600)
@Controller
@RequestMapping("/rest")
public class MyController
私が正しく理解していれば、 mvc-config は別の方法です。私もそれを試しました:
<mvc:cors>
<mvc:mapping path="/**"
allowed-origins="http://fiddle.jshell.net/, http://domain2.com"
allowed-methods="GET, PUT"
allowed-headers="header1, header2, header3"
exposed-headers="header1, header2" allow-credentials="false"
max-age="123" />
</mvc:cors>
どちらの方法でも、応答には のようなものが含まれていないようですAccess-Control-Allow-Origin
。また、jsfiddle からの単純なクエリで結果を返すこともできません。
localhost から実行してアクセスしたときの Chrome 開発者ツールのヘッダー情報は次のとおりです。この場合、リクエストは同じドメインからのものであり、javascript を介していませんが、CORS アノテーションはとにかくアクセス制御パラメーターを追加すると思いましたか?
応答ヘッダー:
Content-Length:174869
Content-Type:text/html;charset=UTF-8
Date:Fri, 21 Aug 2015 12:21:09 GMT
Server:Apache-Coyote/1.1
リクエストヘッダー:
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*\/*;q=0.8
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-US,en;q=0.8,ro;q=0.6,de;q=0.4,fr;q=0.2
Cache-Control:no-cache
Connection:keep-alive
Cookie:JSESSIONID=831EBC138D2B7E176DF4945ADA05CAC1;_ga=GA1.1.1046500342.1404228238; undefined=0
Host:localhost:8080
Pragma:no-cache
Upgrade-Insecure-Requests:1
User-Agent:Mozilla/5.0(Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.155 Safari/537.36
私はスプリング ブートを使用していないため、構成手順を見逃したと思います。