在观看了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)均返回指示失败或成功的响应,您应检查状态并向用户显示其请求成功或失败。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句