typescript - får en 200-status, men fortsatt en feil når jeg bruker POST i angular 4
Jeg har 2 POST-forespørsler som kjører gjennom et løfte, men uansett hvilken som er på innsiden, treffer de catch-blokken og utfører ikke POST-forespørselen på innsiden.
Jeg har følgende kode:
this.http.post(medurl, datamed)
.toPromise()
.then(response => {
console.log('Post Success!');
console.log('Reponse: ' + response);
if (response != 0){
this.http.post(scripturl, datascript)
.toPromise()
.then(response => {
console.log('Post Success!');
console.log('Reponse: ' + response);
})
.catch(error => {
console.log('Post Error!');
console.log('Reponse: ' + typeof(error));
});
}
})
.catch(error => {
console.log('Post Error!');
console.log('Reponse: ' + typeof(error));
});
Jeg er ikke sikker på hva problemet er, fordi jeg har dobbel- og trippelsjekket feltene for POST-ene, og de fungerer helt fint i en annen kontekst, i tillegg er responsen 200.
Jeg er ikke sikker på hvilke andre detaljer jeg skal legge til her, men hvis du trenger mer informasjon, gi meg beskjed.
Svar #1
Jeg hadde et lignende problem hvor jeg mottok en 200-statusrespons, men det ville fortsatt kaste en feil. Jeg måtte sette responseType-attributtet på options-parameteren til HttpClients postmetode.
this.http.post(medurl, datamed, { responseType: 'text' })
.toPromise()
.then(response => {
....
})
.catch(error => {
console.log('Post Error!');
console.log('Reponse: ' + typeof(error));
});
https://angular.io/guide/http#requesting-non-json-data
