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
}