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
ヘッダーは、私が行っているリクエストに含まれていないようです。
どうしてこれなの?
正しく表示される場合、表示されているのはOPTIONSプリフライトリクエスト(CORS)であり、実際のPOSTリクエストではありません。
「問題のリクエスト」が2つあるはずです。 1つのHTTPメソッドはOPTIONS(ここで示したもの、プリフライトcorsリクエストと呼ばれる)と1つの実際のPOST(サーバーがクライアントに許可する場合)。Hostが_locahost:4200
_、私はそう思う、それからあなたは_localhost:4200
_クライアントのためにあなたのサーバーでcorsリクエストを有効にしなければならない。
これは私のために働いた。追加する代わりに。
let headers = new HttpHeaders({ 'Content-Type': 'application/json' });
httpHeadersは不変であるため、割り当てる必要があります
const _headers = new HttpHeaders();
const headers = _headers.append('Content-Type', 'application/json')
.append('...', '...')
.append('...', '...');