2017-04-12 6 views
0

sites/default/services.ymlにあるYAMLファイルを使用してCORPヘッダーをDrupal 8.2インスタンスに追加しようとしていますが、Drupalで必要なヘッダーを生成できません: ここでAccess-Control-Allow-Origin → *Drupal 8.2のcors.config:parametersの設定方法

は私sites/default/services.ymlです:

# Configure Cross-Site HTTP requests (CORS). 
    # Read https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS 
    # for more information about the topic in general. 
    # Note: By default the configuration is disabled. 
    cors.config: 
    enabled: true 
    # Specify allowed headers, like 'x-allowed-header'. 
    allowedHeaders: [] 
    # Specify allowed request methods, specify ['*'] to allow all possible ones. 
    allowedMethods: [] 
    # Configure requests allowed from specific origins. 
    allowedOrigins: ['*'] 
    # Sets the Access-Control-Expose-Headers header. 
    exposedHeaders: false 
    # Sets the Access-Control-Max-Age header. 
    maxAge: false 
    # Sets the Access-Control-Allow-Credentials header. 
    supportsCredentials: false 

私は何かを検証する必要がある場合は、誰もが知っている、または.ymlファイルが動作していない理由をデバッグする方法?

注:私はsettings.phpに追加しようとしている:8.2この固有の設定ファイルを持っているのでheader("Access-Control-Allow-Origin: *");とこの作品は、しかし、それは、これを行うための推奨方法ではありません。

答えて

0

ここで私の作業services.ymlと対応するJSのDrupal 8.3.7要求があります。

cors.config: 
enabled: true 
# Specify allowed headers, like 'x-allowed-header'. 
allowedHeaders: ['x-csrf-token','authorization','content-type','accept','origin','x-requested-with'] 
# Specify allowed request methods, specify ['*'] to allow all possible ones. 
allowedMethods: ['*'] 
# Configure requests allowed from specific origins. 
allowedOrigins: ['http://localhost:3000'] 
# Sets the Access-Control-Expose-Headers header. 
exposedHeaders: true 
# Sets the Access-Control-Max-Age header. 
maxAge: 1000 
# Sets the Access-Control-Allow-Credentials header. 
supportsCredentials: false 

ここでは、レスポンスを確認するためのクイック開発ツールコンソールフェッチがあります。

function reqListener() { 
    var data = this.responseText; 
    console.log(data); 
} 

function reqError(err) { 
    console.log('Fetch Error :-S', err); 
} 

var oReq = new XMLHttpRequest(); 
oReq.onload = reqListener; 
oReq.onerror = reqError; 
oReq.open('get', 'http://blt.dev/session/token', true); 
oReq.send(); 

これは、匿名ユーザーの適切なcsrfトークンで応答します。

enter image description here

関連する問題