2017-12-17 16 views
1

スリムフレームワークv3を使用しているRESTアプリケーションがあります。すべて正常に動作しますが、応答のヘッダーを設定できないようです。例えばスリムフレームワーク3 401レスポンスでWWW認証ヘッダーを設定できません

:などのデータを取得するという点で期待通り

$app->any('/[{path:.*}]', function(Request $request, Response $response, $args = null) use ($objError, $objDBCon, $objUtil) { 
... 
return $response->withAddedHeader('WWW-Authenticate', 'API-key realm="restricted"') 
       ->withJson($apiResults, $httpcode); 
}); 

作品、正しいHTTPステータスコードを取得し、

たとえば、私は正しいレスポンスJSON

{ "message": "You must be logged in to access this resource" } 
を取得

となり、予想されるステータスコードは

Request Method:GET 
Status Code:401 Unauthorized 

とすべての標準の正しいヘッダー、コンテンツタイプなど

ただし、追加のヘッダーを設定できないようです。

リファレンスhttps://www.slimframework.com/docs/objects/response.html

+0

'withJson() - > withAddedHeader()'のように、 'withJson'を呼び出した後にヘッダーを追加して、違いがあるかどうかを確認してください。 – Nima

答えて

1

私の評判はコメントを追加するには、低レベルにあるdocumentaiton:

マニュアル

withAddedHeader方法が既にのために存在する値のセットに新たな価値を付加しによると、同じヘッダー名

あなたのヘッダーはappe何か?私は通常、各応答のための新しいヘッダを作成

、このような何か:

return $response = $next($request, $response) 
      ->withHeader('Access-Control-Allow-Origin', $this->allowedhosts) 
      ->withHeader('Access-Control-Allow-Headers', 'X-Requested-With, Content-Type, Accept, Origin, Authorization') 
      ->withHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS') 
      ->withStatus(200); 

は、このことができます願っています。

関連する問題