Je tente d'obtenir des données à partir d'un service à l'aide de la requête POST. Mais je ne peux pas changer les en-têtes (TS ne compile pas) ou le type de contenu. Je reçois cette erreur console:Type de contenu de requête HTTP angulaire de 'text/plain' à 'application/json'
état ": 415," erreur ":" Type de support non pris en charge " "exception": "org.springframework.web.HttpMediaTypeNotSupportedException", "message":" Type de contenu ' text/plain' non supporté »
est mon code ci-dessous composant
import { Component, OnInit } from '@angular/core';
import { Http, Headers, Response, URLSearchParams } from '@angular/http';
import { HttpClient } from '@angular/common/http';
import 'rxjs/add/operator/map';
@Component({
selector: 'app-search',
templateUrl: './search.component.html',
styleUrls: ['./search.component.css']
})
export class SearchComponent implements OnInit {
searchValue: any = '';
constructor(private http: HttpClient) { }
getData() {
this.http.post('MY URL',
JSON.stringify({
"q": "Achmea"
}))
.subscribe(
data => {
alert('ok');
console.log(data);
}
)
NB:. Utilisé t L'extrait de code parce que le formatage ne me laisserait pas poster comme pré.
Utilisation de la dernière version angulaire 4. Le serveur doit également être correctement configuré, n'acceptant que les données json. J'ai essayé les exemples de documents Angular mais aucun d'eux n'a fonctionné.
Quelqu'un at-il une idée de comment le faire fonctionner? Merci d'avance.
'[ts] Argument de type '{en-têtes: en-têtes; } 'n'est pas assignable au paramètre de type' {headers ?: HttpHeaders; observer ?: "corps"; params ?: HttpParams; reportProgress?: boolean; respons ... '. Les types d'en-têtes de propriété sont incompatibles. Le type 'En-têtes' n'est pas assignable pour taper 'HttpHeaders'. La propriété 'headers' est manquante dans le type 'Headers''. Voici ce que mon code studio visuel indique sur la ligne d'en-tête et ne compile pas. – raulicious
Vérifiez si vous ajoutez ceci à votre importation: 'import {Http, En-têtes, Response, RequestOptions, ResponseContentType} à partir de '@ angular/http';' –
Non, cela ne fonctionne pas non plus. Je les ai aussi importés aussi ... Chaque réponse que je vois sur stackoverflow liée à ceci se décompose sur moi dans la partie headers. – raulicious