HTTP 之 Fetch
Fetch
是一个现代的概念, 等同于XMLHttpRequest
。它提供了许多与 XMLHttpRequest 相同的功能,但被设计成更具可扩展性和高效性。Fetch
的核心在于对HTTP
接口的抽象,包括Request,Response,Headers,Body
,以及用于初始化异步请求的global fetch
。得益于JavaScript
实现的这些抽象好的 HTTP 模块,其他接口能够很方便的使用这些功能。Fetch API
是基于Promise
设计- 兼容性:目前最新版的
Chrome
和Firefox
已经支持了Fetch
,低版本的浏览器请使用第三方ployfill(isomorphic-fetch)
来支持
例子
let request = new Request(url, option);
fetch(request).then(
function(response) {
// handle HTTP response
},
function(error) {
// handle network error
}
);
// 或者二选一就可以
fetch(url, option).then(
function(response) {
// handle HTTP response
},
function(error) {
// handle network error
}
);
核心:Body
提供了关联 response/request 中 body 的方法,可以定义它的文档类型以及请求如何被处理
- 属性 :
。bodyUsed : 包含一个指示 body 是否被读取过的 Boolean 值 - 方法
。arrayBuffer() : 返回解决一个 ArrayBuffer 表示的请求主体的 promise
。blob() : 返回解决一个 Blob 表示的请求主体的 promise
。formData() : 返回解决一个 FormData 表示的请求主体的 promise
。json() : 返回解决一个 JSON 表示的请求主体的 promise
。text() : 返回解决一个 USVString(文本)表示的请求主体的 promise - 更多情访问 https://devel