Ich habe Anmeldeformular und ich muss dieses Formular mit csrf Token senden, die ich erhalten sollte, bevor das ausgefüllte Formular gesendet wird. Es gibt keinen funktionierenden Code, aber es hat eine Idee was ich will.Holen Sie http Daten vor dem Senden http Anfrage in Angular 2 mit RxJS
var model = {
username : this.form.value.username,
email : this.form.value.email,
password_second : this.form.value.password_second,
password : this.form.value.password,
csrf : ''
};
this._csrfService.getToken().subscribe(
csrf => model.csrf,
error => console.log(error)
);
this._signUpService.sendForm(model)
.subscribe(
hero => console.log(hero),
error => console.log(error));
Registrierungs- und CSRF Dienstleistungen liegen auf der Hand:
getToken()
{
console.log(this.http.get(this._sighUpUrl));
return this.http.get(this._sighUpUrl)
.map(res => res.json().data.csrf)
.catch(this.handleError)
}
sendForm(name:Object)
{
let body = JSON.stringify(name);
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
console.log(this.http.post(this._sighUpUrl, body, options));
return this.http.post(this._sighUpUrl, body, options)
.map(res => res.json().data)
.catch(this.handleError)
}
Wie warten, während ich CSRF-Token nicht bekommen?
senden Sie einfach die zweite Anfrage aus dem Rückruf der ersten –
Ich habe keinen Zugriff auf "diese" vom Rückruf – x1site
Warum haben Sie keinen Zugriff darauf? –