“如何用Javascript发出HTTP请求?”
时间: 2023-11-28 22:06:03 浏览: 29
在Javascript中,可以使用XMLHttpRequest对象来发出HTTP请求。以下是一个基本的例子:
```javascript
const xhr = new XMLHttpRequest();
xhr.open('GET', 'https://example.com');
xhr.send();
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) {
console.log(xhr.responseText);
}
};
```
在这个例子中,我们创建了一个XMLHttpRequest对象,并使用open()方法来定义HTTP请求的类型和URL。然后,我们使用send()方法发送请求。最后,我们使用onreadystatechange事件来监听请求状态的变化,并在状态为4(即请求完成)且状态码为200(即成功)时,打印响应文本。
除了GET请求,我们还可以使用XMLHttpRequest对象发出POST请求,例如:
```javascript
const xhr = new XMLHttpRequest();
xhr.open('POST', 'https://example.com');
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.send(JSON.stringify({ name: 'John', age: 30 }));
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) {
console.log(xhr.responseText);
}
};
```
在这个例子中,我们使用setRequestHeader()方法来设置请求头,以便服务器能够正确解析请求体。我们还使用JSON.stringify()方法将请求体转换为JSON格式。最后,我们仍然使用onreadystatechange事件来监听请求状态的变化,并在状态为4(即请求完成)且状态码为200(即成功)时,打印响应文本。
除了XMLHttpRequest对象,我们还可以使用fetch()方法发出HTTP请求。例如:
```javascript
fetch('https://example.com')
.then(response => response.text())
.then(data => console.log(data));
```
在这个例子中,我们使用fetch()方法发出GET请求,并使用then()方法处理响应。在第一个then()方法中,我们使用response.text()方法将响应转换为文本格式。在第二个then()方法中,我们打印响应文本。fetch()方法返回的是一个Promise对象,因此我们可以使用Promise的then()方法链式处理响应。