Voici le code pour faire une demande de publication:
export class AuthenticationService {
private authUrl = 'http://localhost:5555/api/auth';
constructor(private http: HttpClient) {}
login(username: string, password: string) {
console.log(username);
let data = {'username': username, 'password': password};
const headers = new HttpHeaders ({'Content-Type': 'application/json'});
//let options = new RequestOptions({headers: headers});
return this.http.post<any>(this.authUrl, JSON.stringify({data: data}), {headers: headers});
}
}
Ci-dessous, le code du nœud où j'essaie d'accéder au corps de la demande, le corps de la demande est nul dans le cas de l'hélice:
router.use(express.static(path.join('webpage')));
var bodyParser = require('body-parser');
router.use(bodyParser.urlencoded({ extended: true }));
router.post('/api/auth', function(req, res){
console.log(req.body);
console.log(req.body.username + ":" + req.body.password);
});
La demande a été envoyée avec succès en utilisant la méthode ci-dessous:
Angulaire:
login(username: string, password: string) {
const data = {'username': username, 'password': password};
const config = { headers: new HttpHeaders().set('Content-Type', 'application/json') };
return this.http.post<any>(this.authUrl, data, config)
.map(res => {
console.log(res);
if (res.user === true) {
localStorage.setItem('currentUser', res.user);
localStorage.setItem('role', res.role);
}
return res;
},
err => {
return err;
}
);
}
Noeud
var bodyParser = require('body-parser');
router.use(bodyParser.json());
router.post('/api/auth', function(req, res){
console.log("request received " + req.body);
});
Vous devez envoyer une demande de données de formulaire au lieu d'une charge utile JSON.
Tout d'abord, vous devez définir l'en-tête de type de contenu approprié:
const headers = new HttpHeaders({
'Content-Type': 'application/x-www-form-urlencoded'
});
Deuxièmement, vous devez envoyer un objet FormData
:
const data = new FormData();
data.append("username", username);
data.append("password", password);
// ...
return this.http.post<any>(this.authUrl, data, {headers: headers});