2017-06-24 6 views
5

非常に簡単な角4 HTTPリクエストを試しています。 Chromeの開発者ツールをチェックすると、httpヘッダーが表示されませんでした。角4にはhttpリクエストのヘッダーが含まれていません

const headers: Headers = new Headers(); 
headers.append('Content-Type', 'application/json'); 
headers.append('Authorization', 'Bearer: 123213'); 
this.http.post('https://127.0.0.1:502', JSON.stringify(token), {headers: headers}).subscribe(); 

私に何かが不足していますか?

+0

チェック[この](https://stackoverflow.com/a/41133924/2545680) –

+0

@Maximusだけしようと、それは動作しません。 :/ –

+0

私は私の答えに例を提供してくれました。それは私のために働きました、私は角度v4.xを使用しています –

答えて

13

で始まる@angular/httpモジュールは、すべてのクラスで廃止されました。今すぐangular/common/httpを使用する必要があります。詳細についてはRead hereをご覧ください。あなたはまだあなたが表示されない場合

import {Http, Headers, RequestOptions} from '@angular/http'; 

:あなたは@angular/httpから正しいオブジェクトをインポートしているを確保する必要が

import {Http, Headers, RequestOptions} from '@angular/http'; 

export class AppComponent { 
    constructor(private http: Http) { 
     const headers = new Headers(); 
     headers.append('Content-Type', 'application/json'); 
     headers.append('authentication', `hello`); 

     const options = new RequestOptions({headers: headers}); 
     this.http.post(
      "http://localhost:3000/contacts", 
      JSON.stringify({id: 4, name: 'some'}), 
      options 
     ).subscribe(); 

あなたはこのようにそれを行うことができます使用しているサーバーが許可していない可能性もあります。ブラウザが他の原点にリクエストを行うと、access-control-headers-requestヘッダーを送信して、サーバーがカスタムヘッダーを許可しているかどうかを確認します。サーバーがカスタムヘッダーを許可するように構成されていない場合、その結果の要求では表示されません。

+1

[docs on Headers](https://angular.io/api/http/Headers)クラスは推奨されておらず、[クラス* HttpHeaders *](https://angular.io/api/common/http/HttpHeaders)を使用することをお勧めします。私はまだそれを動作させることはできませんが(文法があまりにも無知なので)、古くなったクラスで答えを更新したいのであれば、それは大いに感謝しています。 – DonkeyBanana

+0

@DonkeyBanana、はい、 '@ angular/http'モジュールはすべてのクラスで廃止されました。これで '@ angular/common/http'を使うべきです。私は答えに追加します。ありがとう –

0

この

constructor(private http: Http) { 
      this.headers = new Headers(); 
      this.headers.append('content-type', 'application/json'); 
    } 

を入れて、メソッド内でこの

return this.http.post(url, jsonData, this.headers).map((resp: Response) => resp.json()); 
9

あなたが使用している場合はHttpClientをHTTPではなく、あなたのコードすべきは、このようになります:あなたのparamsがオプションの場合

login(credintials: Authenticate): Observable<any> { 

    const body = { 
     username: credintials.username, 
     password: credintials.password, 
     grant_type: 'password', 
     client_id: credintials.client_id 
    }; 
    const headers = new HttpHeaders() 
     .set('Content-Type', 'application/x-www-form-urlencoded') 
     .set('Authorization', 'Basic loremlorem'); 

    return this.http.post(`${baseUrl}/uaa/oauth/token`, 
     body, 
     { 
      headers: headers 
     } 
    ); 
} 

次のようなパラメータを追加する必要があります。

let params: HttpParams = new HttpParams(); 
if (param) { 
    params = params.append('page', param.page); 
} 

ソースコードのようになります。

/** 
* Construct a new body with an appended value for the given parameter name. 
*/ 
append(param: string, value: string): HttpParams; 
関連する問題