Access-Control-Allow-Origin 応答ヘッダーは、応答が与えられたオリジンとリソースを共有できるかどうかを示します。

ヘッダー種別 応答ヘッダー
禁止ヘッダー名 いいえ

構文

Access-Control-Allow-Origin: *
Access-Control-Allow-Origin: <origin>

ディレクティブ

*
資格情報が必要ない要求の場合、サーバーはワイルドカードとして「*」を指定することができます。その場合、任意のオリジンがリソースにアクセスできるようになります。
<origin>
リソースにアクセスできる URI を指定します。

あらゆるリソースにアクセスを認める場合、以下のように指定します。

Access-Control-Allow-Origin: *

https://developer.mozilla.org に対してのみアクセスを認める場合、以下のように指定します。:

Access-Control-Allow-Origin: https://developer.mozilla.org

CORS とキャッシング

サーバが "*" ではなく origin ホストを指定している場合、 Vary 応答ヘッダーに Origin を含めて、サーバーの応答が Origin 要求ヘッダーの値に基づいて異なることをクライアントに示す必要があります 。

Access-Control-Allow-Origin: https://developer.mozilla.org
Vary: Origin

サーバー上での CORS の扱い (Java の例)

これはサーバー上で Java を使用して、 CORS のすべての種類を許可する単純な CORS フィルターを作成することができる方法です。

import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;


@component
public class SimpleCORSFilter implements Filter {

private final Logger log = LoggerFactory.getLogger(SimpleCORSFilter.class);

public SimpleCORSFilter() {
    log.info("SimpleCORSFilter init");
}

@override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {    
    
    HttpServletRequest request = (HttpServletRequest) req;
    HttpServletResponse response = (HttpServletResponse) res;
    response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));
    response.setHeader("Access-Control-Allow-Credentials", "true");
    response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
    response.setHeader("Access-Control-Max-Age", "3600");
    response.setHeader("Access-Control-Allow-Headers", "Content-Type, Accept, X-Requested-With, remember-me");
    chain.doFilter(req, res);
}


@Override
public void init(FilterConfig filterConfig) {
}

@Override
public void destroy() {
}

}

仕様書

仕様書 策定状況 コメント
Fetch
Access-Control-Allow-Origin の定義
現行の標準 初回定義

ブラウザーの対応

機能ChromeEdgeFirefoxInternet ExplorerOperaSafari
基本対応4123.510124
機能Android webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
基本対応2.1 あり あり4123.2 あり

関連情報

ドキュメントのタグと貢献者

このページの貢献者: mfuji09, Meganesaru
最終更新者: mfuji09,