Je suis assez nouveau pour angular
et j'utilise la dernière version.
J'essaie d'exécuter une demande de publication mais je rencontre un problème CORS
. Je pense que le problème vient du fait que mon en-tête de demande ne contient pas de type de contenu et que je souhaite l'ajouter à mon code.
Dans la version précédente, cette méthode ci-dessous fonctionnait mais ne fonctionnait plus. Que dois-je faire pour appliquer correctement les en-têtes dans Angular 6
?
Je reçois l'erreur suivante
"L'argument de type '{header: any;}' n'est pas assignable au paramètre de type '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)
)
}
app/json est automatiquement appliqué aux requêtes HttpClient, vous n'avez donc pas besoin de le faire.
Cela étant dit, vous utilisez la mauvaise importation HTTP ..__ devrait être:
import { HttpClient } from '@angular/common/http';
constructor(private http: HttpClient) {}
this.http.post(...);