Как получить код xhr.response.statuscode

Я хотел бы знать, как использовать XMLHttpRequest для получения ответа от ws.

Я пробовал этот код, чтобы опубликовать свою юдоль:

  private prepareSave(): any {
    const endpoint = (Api.getUrl(Api.URLS.createContrat));
    let XHR = new XMLHttpRequest();
    const input: FormData = new FormData();
    input.append('contratedate', this.addContratForm.get('contratedate').value);
    input.append('contratdesc', this.addContratForm.get('contratdesc').value);
    input.append('unit_price', this.addContratForm.get('unit_price').value);
    input.append('files', this.addContratForm.get('files').value);
    input.append('token', this.auth.getCurrentUser().token);
   XHR.addEventListener('load', function (event) {
       alert('Yeah! Data sent and response loaded.');
   });

     XHR.addEventListener('error', function (event) {
       alert('Oups! Something went wrong.');
     });

    XHR.open('POST', endpoint);

    console.info(input)
    XHR.send(input)
    console.info(XHR) // show me XMLHttpRequest.
  }

Мой ответ:

   {
    "StatusCode":0,
    "StatusMessage":"OK",
    "StatusDescription":
    [
    {
    "error_no":0,
    "error_msg":"",
    "sqlerrorno":0,
    "sqlerror":"",
    "lastid":"11E84DE6579F6599A4FBFA163EBBBC1D"}
    ]
    }

Я пробовал что-то вроде этого кода, но без функции:

if (XHR.response.StatusCode === 0) {
          Materialize.toast('Contrat update successfully', 4000);
          this.router.navigate(['/main/contrats']);
         return true;
       }

Подскажите, пожалуйста, какое-нибудь решение? Спасибо

Что не так с вашим кодом? Кроме того, почему вы не используете встроенный в Angulars класс HttpClient?

Roberto Zvjerković 02.05.2018 11:09

Работайте правильно этот код, только я хочу отображать в фоновом режиме StatusMessage. Как его получить?

user9699663 02.05.2018 11:15
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
0
2
108
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ты пробовал: XHR.StatusCode вместо XHR.response.StatusCode? потому что, как я вижу из вашего зарегистрированного объекта, нет атрибута ответа ...

Ответ принят как подходящий

Попробуйте этот код:

private prepareSave(): any {
    const endpoint = (Api.getUrl(Api.URLS.createContrat));
    let XHR = new XMLHttpRequest();
    const input: FormData = new FormData();
    input.append('contratedate', this.addContratForm.get('contratedate').value);
    input.append('contratdesc', this.addContratForm.get('contratdesc').value);
    input.append('unit_price', this.addContratForm.get('unit_price').value);
    input.append('files', this.addContratForm.get('files').value);
    input.append('token', this.auth.getCurrentUser().token);
   XHR.addEventListener('load', function (event) {
       alert('Yeah! Data sent and response loaded.');
   });

     XHR.addEventListener('error', function (event) {
       alert('Oups! Something went wrong.');
     });

    XHR.open('POST', endpoint);

    console.info(input)
    XHR.send(input)
    XHR.onload = function () {
      let jsonResponse = JSON.parse(XHR.responseText);
      if (jsonResponse.StatusCode === 0) {
        Materialize.toast('Contrat saved successfully', 4000);
        window.location.href = '/main/contrats';
        return true;
      }
  }

Другие вопросы по теме