AJAX PUT 请求
PUT 请求用于更新 Web 服务器上的数据。在此请求中,数据在请求正文中发送,Web 服务器将用新数据替换现有数据。如果指定的数据不存在,则它会将替换数据作为新记录添加到服务器中。
PUT 请求与 POST 请求在以下几点上有很大不同:
PUT 用于更新现有记录,而 POST 一般用于向服务器中添加新记录。
PUT 请求可以缓存,而 POST 请求不能缓存。
PUT 请求是幂等的,而 POST 请求是非幂等的。
PUT 请求作为特定请求工作,而 POST 请求作为抽象工作。
语法:
open('PUT', url, true)其中,open() 方法需要三个参数 -
PUT - 它用于更新Web服务器上的数据。
url − url 表示将在 Web 服务器上打开的文件 url 或位置。
true − 对于异步连接,将值设置为 true。或者,对于同步连接,将值设置为 false。此参数的默认值为 true。
如何发送 PUT 请求
步骤1 - 创建XMLHttpRequest的对象。
var xhrRequest = new XMLHttpRequest();
第 2 步 - 在创建 XMLHttpRequest 对象后,现在我们必须定义一个回调函数,该函数将在从 Web 服务器获取响应后触发。
xhrRequest.onreadystatechange = function(){
// 回调处理逻辑
}步骤3 - 调用 open() 函数。在 open() 函数内部,我们传递一个 PUT 请求以及我们必须向其发送数据的 URL。
xhrRequest.open("PUT", url, async);步骤4 - 使用 setRequestHeader() 设置 HTTP 头请求。它总是在 open() 方法之后但在 send() 方法之前调用。这里,content-type 标头设置为“application/json”,表示数据将以 JSON 格式发送。
xhrRequest.setRequestHeader('Content-type', 'application/json');第 5 步 - 最后,我们使用 stringify() 方法将 JSON 数据转换为字符串,然后使用 send() 方法将其发送到 Web 服务器以更新服务器上存在的数据。
xhrRequest.send(JSON.stringify(JSONdata));
PUT 和 POST 请求之间的区别
| PUT | POST |
| 它用于更新现有记录。 | 它用于创建新记录。 |
| 它将整个资源作为有效负载发送。 | 它只发送要更新的部件。 |
| 它可以被缓存 | 它不能被缓存 |
| 它是幂等的 | 它是非幂等的 |
| 如果我们多次发送此请求,则将在指定的服务器上创建多个 URL。 | 如果我们多次发送此请求,则将在指定的服务器上创建多个 URL 如果我们多次发送此请求,它仍然被服务器计为一次修改请求。 |
因此,这就是我们可以使用 XMLHttpRequest 发送 PUT 请求的方法。它通常用于更新或修改服务器上存在的数据。