J'ai configuré mon API sur le serveur Web, je ne parviens actuellement pas à récupérer les données à l'aide de la clé de mon application, mais je suis capable de le faire avec Postman, veuillez aider
const httpOptions = { headers: new HttpHeaders({ 'APP_KEY': 'ABCDEFGHJ' }) }; this.http.get('<my_api_link>', httpOptions).subscribe((res) => { this.Result = JSON.stringify(res); console.log('Result', this.DataResult); }, (err) => { console.error(err.status); console.error(err.error); // Error message as string console.error(err.headers); });
Le message d'erreur n'a pas pu trouver la clé d'application
4 Réponses :
Essayez de définir les en-têtes de cette façon
const httpHeaders = new HttpHeaders() .set('APP_KEY', 'ABCDEFGHJ'); this.http.get('<my_api_link>', httpHeaders)
les en-têtes ne devraient-ils pas faire partie de l'objet d'options?
@KiraAG de cette façon est également valide
en fait, toutes ces 3 méthodes fournies sont les mêmes, juste un peu différentes sur la structure, mais toujours incapables de détecter la clé de l'application
Comment vérifiez-vous que la clé n'est pas détectée?
J'ai sorti la clé entrée sur la console DataResult {"0": 401, "message": "Clé d'application non trouvée, entrée API_KEY ="}
essayez de consoler et de vérifier au niveau de l'intercepteur avant l'appel de l'API.
Essayez ceci:
let headers = new HttpHeaders(); headers = headers.set('APP_KEY','ABCDEFGHJ');
Ou
var token = 'ABCDEFGHJ'; const myHeaders = new HttpHeaders({ 'Content-Type': 'application/json', 'Authorization': token }); this.http.get('<my_api_link>', { headers: myHeaders });
Modification de votre extrait de code:
const httpOptions = { headers: new HttpHeaders().set('APP_KEY', 'ABCDEFGHJ') }; this.http.get('<my_api_link>', httpOptions).subscribe((res) => { this.Result = JSON.stringify(res); console.log('Result', this.DataResult); }, (err) => { console.error(err.status); console.error(err.error); // Error message as string console.error(err.headers); });
importer {HttpClient} depuis '@ angular / common / http';
constructeur (_httpClient privé: HttpClient) {
// du code
}