2017-05-20 30 views
1

にいくつかのヘッダーの値を取得していないが、私は、角度4で、次のようなバックエンドを照会しています角度4

this.classzService.query({ 
     page: this.page, 
     size: this.itemsPerPage, 
     sort: this.sort(), 
     url: url 
    }).subscribe(
     (res: Response) => this.onQuerySuccess(res.json(), res.headers), 
     (res: Response) => this.onError(res.json()) 
    ); 

    private onQuerySuccess(data, headers: Headers) { 
     this.links = this.parseLinks.parse(headers.get('Link')); 
     this.totalItems = headers.get('X-Total-Count');   
    } 

問題はheaders.get('Link')あるとheaders.get('X-Total-Count')は私にNULL値を与えます。

クロムブラウザをチェックすると、その値が表示されます。何が問題なのか。 enter image description here

+0

'ClasszService'コードで投稿を更新できますか – Aravind

+0

@Aravind ClasszServiceコードを更新しました。私は期待どおりの反応を得ています。それは角度のヘッダーオブジェクトは私の変数を含んでいません。 –

+0

あなたは 'options'の値で投稿を更新できます – Aravind

答えて

1

これは、一般にCORSの場合、起点が異なる場合に発生します。サーバーでCORSを有効にすると、既定では一部の既定のヘッダーのみが公開されます。あなたのケースでは、2つのカスタムヘッダLinkX-Total-Countがあります。サーバー上では、Access-Control-Expose-Headersを使用してこれらのヘッダーを明示的に公開する必要があります。あなたはASP.NETのWEBAPIを使用しているなら、あなたはあなたのWebApiConfigクラスにこれを追加することによって行うことができます。

config.EnableCors(new EnableCorsAttribute("*", "*", "GET, POST, OPTIONS, PUT, DELETE", "Link, X-Total-Count")); 

あなたはこの概念herehereを確認することができます。

+0

パーフェクト:)..... –