在使用 XHR 执行 HTTP POST 或 PUT 请求时,我应该检查状态吗?



这是我在观看Udemy课程中有关XHR和Async JS的一些视频后得到的一个奇怪的问题。在一节中,我们创建了一个简单的库,用于在 ES5 中发出 HTTP 请求。它是这样开始的:

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 请求时真的应该"忽略"状态吗?为什么?

在执行 POST 和 PUT 请求时,我们真的应该"忽略"状态吗?

否,您应该检查状态代码。

所有 HTTP 请求方法(包括 POST 和 PUT(都会返回指示失败或成功的响应,您应该检查状态并向用户显示他们的请求成功或失败。

相关内容

最新更新