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

Relaterte artikler