Fetch API
定义
Fetch API 提供了一个获取资源的接口。 它提供了一种更强大、更灵活的方式来发送 HTTP 请求,替代了传统的 XMLHttpRequest。
核心概念
- Request 对象:表示一个 HTTP 请求。 可以通过
new Request()
构造函数创建 Request 对象。 - Response 对象:表示一个 HTTP 响应。 Fetch API 返回的 Promise 对象会 resolve 为一个 Response 对象。
接口和方法
- fetch():发起一个 HTTP 请求。
- 语法:
fetch(url, options)
- 参数: -url
:请求的 URL。 -options
:可选的配置对象,包括 method、headers、body 等。 - 返回值:一个 Promise 对象,resolve 为一个 Response 对象。 - Response 对象的方法:
-
response.json()
:将响应体解析为 JSON 对象。 -response.text()
:将响应体解析为文本。 -response.blob()
:将响应体解析为 Blob 对象。 -response.formData()
:将响应体解析为 FormData 对象。 -response.arrayBuffer()
:将响应体解析为 ArrayBuffer 对象。 -response.clone()
:创建一个 Response 对象的副本。 -response.headers
:返回一个 Headers 对象,包含响应头信息。 -response.ok
:返回一个布尔值,表示响应是否成功(状态码在 200-299 之间)。 -response.redirected
:返回一个布尔值,表示响应是否被重定向。 -response.status
:返回响应的状态码。 -response.statusText
:返回响应的状态文本。 -response.type
:返回响应的类型(例如 basic、cors、default、opaque、opaqueredirect)。 -response.url
:返回响应的 URL。 - Headers 对象:表示 HTTP 头部。
-
headers.append(name, value)
:添加一个头部。 -headers.delete(name)
:删除一个头部。 -headers.get(name)
:获取一个头部的值。 -headers.has(name)
:判断是否存在某个头部。 -headers.set(name, value)
:设置一个头部的值。 -headers.forEach(callback)
:遍历所有头部。
使用示例
发送 GET 请求
fetch('https://example.com/data')
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
参考
👉[Fetch API](https://developer.mozilla.org/zh-CN/docs/Web/API/Fetch_API