JavaScript GET和POST请求在Vanilla中的区别
在这篇文章中,我们将学习关于Vanilla JavaScript中的GET和POST请求方法,并通过示例来理解这两种方法。
GET 和 POST 是两种不同类型的HTTP请求方法。HTTP协议支持许多方法来从服务器传输数据或在服务器上执行任何操作。HTTP协议支持的方法包括GET、POST、PUT、DELETE、PATCH、COPY、HEAD、OPTIONS等。在我们深入了解 GET 和 POST 请求方法的主要区别之前,让我们先了解一下这些HTTP方法是什么。
- GET请求方法: 从特定资源(通过一些API URL)请求数据。在示例中使用一个虚拟API来演示GET请求的工作原理。
- POST请求方法: 将数据发送到特定资源以进行处理(通过一些API URL)。在示例中使用一个虚拟API来演示POST请求的工作原理。
GET和POST请求方法是由 fetch()方法 使用的,该方法用于向服务器发送请求并在网页中加载信息。
示例: 该示例演示了GET请求方法。
// Instantiating new XMLHttpRequest() method
let xhr = new XMLHttpRequest();
// open() method to pass request
// type, url and async true/false
xhr.open('GET',
'https://jsonplaceholder.typicode.com/users/2', true);
// onload function to get data
xhr.onload = function () {
if (this.status === 200) {
console.log(JSON.parse(this.responseText));
}
}
// Send function to send data
xhr.send()
示例: 示例演示POST请求方法。
// Instantiating new XMLHttpRequest()
let xhr = new XMLHttpRequest();
// open() method to pass request
// type, url and async true/false
xhr.open('POST',
'http://dummy.restapiexample.com/api/v1/create', true);
// Setting content-type
xhr.getResponseHeader('Content-type', 'application/json');
// Perform the following when the response is ready
xhr.onload = function () {
if (this.status === 200) {
console.log(this.responseText)
}
else {
console.log("Some error occurred")
}
}
// Send the request as an object obj
obj = `{"name":"Selmon Bhoi",
"salary":"$10, 000", "age":"55"}`;
xhr.send(obj);
GET和POST之间的区别:
序号 | GET 请求 | POST 请求 |
---|---|---|
1. | GET 请求会获取指定资源的表示。 | POST 请求用于写入数据,将其处理到指定的资源。 |
2. | GET 请求通常在请求的URL中包含相关信息。 | POST 请求通常在请求体中包含相关信息。 |
3. | GET 请求受浏览器和Web服务器支持的URL最大长度限制。 | POST 请求没有此限制。 |
4. | GET 请求是默认的HTTP方法。 | 在这种情况下,我们需要指定方法为POST,以使用POST方法发送请求。 |
5. | 可以为GET请求创建书签。 | 无法为POST请求创建书签。 |
6. | GET 请求安全性较低,因为发送的数据是URL的一部分。 | POST 请求相对安全一些,因为参数不会被存储在浏览器历史记录或Web服务器日志中。 |
7. | GET 请求可缓存。 | POST 请求不可缓存。 |
8. | 例如,使用GET请求获取显示特定问题的页面。 | 例如,通过点击“添加到购物车”按钮发送POST请求。 |