2017-11-26 21 views
1

私の問題は、私のサーバーからカスタムHTTPヘッダーをアンカー4に取り込むことができないということです。 CURL(スクリーンショット1)を使用して別のマシンからエンドポイントにクエリを実行すると、(authorization)私は角度にres.headers.getでアクセスしようとすると、私はnullを取得します(スクリーンショット2と3)。角度4のHttpClientヘッダーがありません

バックエンドはlocalhost:1337で実行され、フロントエンドはlocalhost:4200

スクリーンショットで動作1: screenshot 1

スクリーン2 & 3: Screenshot 2screenshot 3

使用postData方法:

postData<T>(url, body) { 
    return this.http.post<T>(this.hostURL + url, body, { 
    observe: 'response', 
    responseType: 'json', 
    headers: new HttpHeaders().set('Authorization', this.session), 
    }); 
} 
+1

getで完全な応答を得るには、{observe: 'response'}を含める必要があります(https://angular.io/guide/httpを参照)。同じテクニックを使用する場合はそれを達成してください – Eliseo

+0

@Eliseo私たちは 'observe: 'response''を使用します... – Armin

+0

@Arminは、すべての関連するコードをテキストとして投稿します。あなたが得た出力をテキストとして投稿します。とにかく、サーバーが承認ハイカーを送信すると思われる理由はわかりません。これは、保護されたリソースにアクセスするための認証資格情報を含む、クライアントが送信するヘッダーです。サーバーが認証トークンを送信する必要がある場合、サーバーは認証トークンを本文に戻します。 –

答えて

0

問題が見つかりました:

私のサーバーにはAccess-Control-Expose-Headers属性がありませんでした。 Actionheroを使用している場合は、カスタムヘッダーをこの属性に追加する必要があります。httpHeadersに追加する必要があります。config/servers/web.js(少なくともこの設定を使用している場合)。

関連する問題