Должен ли я проверять статус при выполнении запросов HTTP POST или PUT с помощью XHR? - PullRequest
1 голос
/ 21 июня 2020

Это странный вопрос, который я получил после просмотра нескольких видеороликов о XHR и Asyn c JS с курса Udemy. Был раздел, в котором мы создали простую библиотеку для выполнения HTTP-запросов в ES5. Началось так:

function EasyHTTP() {
  this.http = new XMLHttpRequest;
}

// Make an HTTP GET Request
EasyHTTP.prototype.get = function(url, callback) {
  this.http.open('GET', url, true);

  let self = this;
  this.http.onload = function() {
    if (self.http.status === 200) {
      callback(null, self.http.responseText)
    } else {
      callback('Error: ' + self.http.status)
    }
  }

  this.http.send();
}

Все понял. Но когда инструктор писал метод post, он делал почти то же самое, что и метод get, но сказал: «Нам не нужно проверять статус, потому что мы выполняем запрос POST» и последний метод для POST закончился так:

// Make an HTTP POST Request
EasyHTTP.prototype.post = function(url, data, callback) {
  this.http.open('POST', url, true);
  this.http.setRequestHeader('Content-type', 'application/json');

  let self = this;
  this.http.onload = function() {
    callback(null, self.http.responseText)
  }

  this.http.send(JSON.stringify(data));
}

И он сделал то же самое для метода put. А вот для delete проверял статус как в методе get. Я сбит с толку, должны ли мы действительно "игнорировать" статус при выполнении запросов POST и PUT? Почему?

1 Ответ

2 голосов
/ 21 июня 2020

должны ли мы действительно «игнорировать» статус при выполнении запросов POST и PUT?

Нет, вы должны проверять код статуса.

Все методы HTTP-запроса, включая POST и PUT, возвращать ответ, указывающий на сбой или успех, вы должны проверить статус и показать пользователю, что его запрос был успешным или не удался.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...