首页 文章

应用请求标头angular 6

提问于
浏览
1

我是 angular 的新手,我正在使用最新版本 .

我正在尝试执行帖子请求,但我遇到了 CORS 问题 . 我相信问题是因为我的请求标头中没有内容类型,我想将其添加到我的代码中 .

在以前的版本中,下面的方法有效但不再有效 . 在 Angular 6 中如何正确应用 Headers 我该怎么办?

我收到以下错误

“类型'{header:any;}'的参数不能分配给'RequestOptionsArgs'类型的参数 . ”

import { Injectable } from '@angular/core';
import { environment } from '../environments/environment';

import { User } from './user';
import { Http } from '@angular/http';
import { HttpClient, HttpHeaders, HttpErrorResponse } from '@angular/common/http';
import { Observable } from 'rxjs';
import { map, catchError } from "rxjs/operators";



const API_URL = environment.apiUrl;

@Injectable({
  providedIn: 'root'
})
export class ApiService {

  constructor(private http: Http) {

  }

  public createUser(user: User): Observable<User> {
    let getHeaders: HttpHeaders = new HttpHeaders({
      'Content-Type': 'application/json'
    });
    return this.http
     .post(API_URL + '/users', user, {header: getHeaders}).pipe(
        map(response => {
          return new User(response.json());
        }), catchError(this.handleError)
      )
  }

1 回答

  • 4

    app / json会自动应用于HttpClient请求,因此您无需执行此操作 .

    话虽这么说,你使用错误的Http导入 . 应该:

    import { HttpClient } from '@angular/common/http';
    
    constructor(private http: HttpClient) {}
    
    this.http.post(...);
    

相关问题