使用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)均返回指示失败或成功的响应,您应检查状态并向用户显示其请求成功或失败。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

expressja 使用 xhr 或 fetch 发出 http 请求

当我必须向HTTP请求发送有效载荷时,应该使用PUT而不是DELETE吗?

使用cURL执行HTTP请求(使用PROXY)

当组件状态为本地时我应该使用Redux吗

如何使用Android NDK执行HTTP请求

我应该使用一个HTTP请求来检查是否可以执行某个操作,然后使用另一个HTTP请求来执行该操作,还是应该将其捆绑到一个请求中?

使用nodejs执行http发布请求时出错

节点-使用axios执行http请求时收到ECONNRESET错误

从Rails路由检查请求是xhr还是http

在执行POST / PUT请求之前,如何检查字符串是否存在?

我应该使用 POST 还是 PUT 进行登录请求,为什么?

REST标准:POST和PUT请求可以使用相同的请求对象吗?

使用scrapy提取XHR请求?

尝试在 Flutter 中执行 HTTP Post 请求时出错

我应该依靠传统的方法来执行GET / POST请求或其他库吗(Android)

在执行HTTP请求时出错

POST HTTP请求的Content-Length应该使用什么值?

什么HTTP状态代码,我应该返回POST没有创建资源时?

在node.js中使用请求模块时,POST请求状态代码(500)。Postman中的POST请求工作正常

无法在Laravel服务中使用Angular HttpClient执行http put

在PHP中,使用file_put_contents()时应该使用fclose()吗?

我应该使用 req.body.item 从 post 请求中获取 body 吗?

如何使用AWS的HTTP API执行发布请求?

NET C#中使用httpclient并发执行HTTP请求

使用来自Webview的cookie执行HTTP请求

如何使用reqwest执行并行异步HTTP GET请求?

如何使用在Angular Pipe内部执行HTTP请求的服务

如何在nifi中使用invoke HTTP执行GET请求?

如何使用机器人框架执行特定的 HTTP 请求