Ich muss Header mit allen HTTP-Anfragen anhängen. Aber jetzt funktioniert keiner meiner api call.Fehler beim Anhängen von http-Headern in ionic3?
In dem unten genannten Code ist die erste Funktion meine HTTP-Anfrage get
. Die zweite Funktion hängt Header an.
//http service to get
get(subUrl?:string, params?:object) {
let optionalParam:URLSearchParams = new URLSearchParams();
if (params) {
for (let item in params) {
optionalParam.set(item, params[item]);
}
}
return this.createCustomHeader()
.switchMap((headers)=> {
console.log('headers inside swithmap', headers);
return this.http.get(this.url + subUrl,
{search: optionalParam, headers: headers})
.map(response => response.json())
.catch(this.handleError)
});
}
//function to append header
private createCustomHeader() {
return Observable.create(obse=> {
this.dbservice.getToken().subscribe(res=> {
let headers = new Headers();
console.log('fetch token', res);
headers.append('Authorization ', `Bearer ${ res.access }`)
headers.append('Content-Type', 'application/json');
headers.append('Accept', 'application/json');
obse.next(headers);
obse.complete();
})
});
}
Funktion
getToken() : Observable<any>{
return Observable.create(obse=>{
let db = new SQLite();
db.create({
name: "data.db",
location: "default"
}).then((db: SQLiteObject) => {
db.executeSql('SELECT token,refresh_token FROM login',[])
.then(res => {
if (res.rows.length > 0) {
for (var i = 0; i < res.rows.length; i++) {
this.token=(res.rows.item(i).token);
this.refresh_token=(res.rows.item(i).refresh_token);
if(this.token && this.refresh_token){
// console.log('Both token found');
const tok={'access':this.token ,'refresh':this.refresh_token};
// console.log('edfghjhgfdfghjhgfdsdfghj--99--',tok);
obse.next(tok);
}else {
obse.next(false);
}
obse.complete();
}
}else
{
obse.next(false);
obse.complete();
}
})
.catch(e => {
obse.error(e);
// console.log(e);
});
}).catch(e => {
// console.log(e);
obse.error(e);
});
});
}
bitte korrigieren Sie mich, Token zu erhalten. Danke
Bitte erläutern Sie diese "return Observable.create" in createCustomHeader? –
tatsächlich bin ich holen Token von db –