web-dev-qa-db-ja.com

Angular 5-HttpClientのヘッダーを設定できません

POST 5プロジェクトでHttpClientを使用してAngularを呼び出し、ヘッダーを設定したい:

import { HttpClient, HttpHeaders, HttpRequest } from '@angular/common/http';
import { Injectable } from '@angular/core';

import { AuthData }    from './models/auth-data';

@Injectable()
export class AuthService {

    constructor(private http: HttpClient) { }

    auth = (data: AuthData) => {

        var url = "https://.../login";
        var payload = data;
        var headers = new HttpHeaders().set('Content-Type', 'application/json; charset=utf-8');
        var options =  {
            headers: headers
        };

        this.http.post(url, payload, options).subscribe();
    }
}

何らかの理由で、Content-Typeヘッダーは、私が行っているリクエストに含まれていないようです。

enter image description here

どうしてこれなの?

11

正しく表示される場合、表示されているのはOPTIONSプリフライトリクエスト(CORS)であり、実際のPOSTリクエストではありません。

「問題のリクエスト」が2つあるはずです。 1つのHTTPメソッドはOPTIONS(ここで示したもの、プリフライトcorsリクエストと呼ばれる)と1つの実際のPOST(サーバーがクライアントに許可する場合)。Hostが_locahost:4200_、私はそう思う、それからあなたは_localhost:4200_クライアントのためにあなたのサーバーでcorsリクエストを有効にしなければならない。

4
dee zg

これは私のために働いた。追加する代わりに。

 let headers = new HttpHeaders({
 'Content-Type': 'application/json' 
}); 
7
Ronald Dsouza

httpHeadersは不変であるため、割り当てる必要があります

const _headers = new HttpHeaders();
const headers = _headers.append('Content-Type', 'application/json')
                        .append('...', '...')
                        .append('...', '...');
6
dimson d