J'ai un problème avec les paramètres de requête dans angular 8. Ceci est le code: i a également essayé p> et P> login(username, password) {
console.log('login');
return this.http.post<any>('http://localhost:8080/login?username='+username+'&password='+password,
{headers:{
'Content-Type' : 'application/json',
'Accept': 'application/json'}}
).pipe(map(data => {
this.setSession(data);
this.currentUserSubject.next(data.user);
}));
}
4 Réponses :
Vous postez les options comme corps. Le troisième paramètre du http.post code> doit être les options suivantes:
let params = new HttpParams();
params = params.append('username', username);
params = params.append('password', password);
const options = { headers: this.headers, params: params };
return this.http.post<any>(this.host + 'login', null, options);
Merci de réponse, je reçois une erreur dans votre suggestion, «Aucune surcharge ne correspond à cet appel. '
@Canerandagio sonne impair, mais vous pouvez essayer de définir le corps sur null code>
"L'utilisateur" de la propriété n'existe pas sur le type "inconnu'.ts (2339)" se référant à "this.currenttusersubject.next (données.user);"
Je l'écrirais comme ceci Vous devez modifier votre objet d'en-têtes, il n'y a pas besoin de l'emballage httpheader autour de celui-ci p> BTW: Si vous n'envoyez pas de corps, réévaluez peut-être le besoin d'une demande de post p> p>
J'ai ajouté les en-têtes
Cela semble un peu confus, j'utiliserais des options comme dans mon code, est-ce possible?
Le dernier paramètre du message est l'objet Options - extrait l'objet Options comme vous avez fait
Je reçois une erreur faisant référence à "Options" dans votre suggestion ", aucune surcharge ne correspond à cet appel. '
Veuillez ajouter comment votre objet d'en-tête a l'air. Je viens de tester cela et ça marche bien.
Vous devez utiliser la méthode http.get () au cas où il n'y a pas de corps (c'est-à-dire que vous devez modifier la méthode de requête à partir de l'article pour obtenir sur le backend).
return this.http.post<any>(this.host + 'login', {},options).pipe(map(data => { console.table(data); this.setSession(data); this.currentUserSubject.next(data.user); }));
Merci de réponse, je reçois une erreur dans votre suggestion, «Aucune surcharge ne correspond à cet appel. ' se référant aux options.
essayez d'envoyer un objet JS après l'URL. Pour EXAPLE: P>
let obj = {nom d'utilisateur: "nom d'utilisateur", mot de passe: "mot de passe"}; p>
this.http.post ("" votre URL ici ", obj) .Subscribe (votre flèche ici); p>
bonne chance! p>
Il n'y a pas de variable d'options dans votre premier exemple? On dirait que votre backend prend les valeurs de la chaîne de requête - essayez-vous de définir des valeurs de chaîne de requête via les options?
@Kurthamilton désolé j'ai supprimé du code de l'article, je répare, le code postal est le même de mon code