Sto tentando di utilizzare la libreria http per inviare una richiesta di accesso a un'API specifica. Errore di credenziali errato perché i dati inviati sono codificati in qualche modo e tutti i segni più vengono modificati in spazi. quindi se inserisco [email protected] come email, il file console.log lo registra correttamente ma viene inviato come amani [email protected] nel formato. La stessa cosa accade per qualsiasi dato, non solo per l'e-mail, quindi se la password di un utente ha un + in esso, i dati inviati saranno cambiati in.come impedire alla libreria http angular2 di rimuovere caratteri speciali dai dati di accesso?
Questo è il mio codice:
let email = '[email protected]';
let password = 'xxxx';
let body = 'email='+email+'&password='+password;
console.log(body);
let headers = new Headers();
headers.append('Content-Type', 'application/x-www-form-urlencoded');
let options = new RequestOptions({ headers: headers });
let url = this.base_url + '/login';
this.http.post(url, body, {headers: headers})
.map(res => res.json())
.subscribe(data => {
this.data = data;
resolve(this.data);
});
potresti spiegare o aggiungere un collegamento al motivo per cui questo è successo in primo luogo? – Vanddel
http://stackoverflow.com/questions/5450190/how-to-encode-the-plus-symbol-in-url "Il carattere + ha un significato speciale in un URL => significa spazio bianco." –