Это странный вопрос, который я получил после просмотра нескольких видеороликов о 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? Почему?