Fetch API
Fetch API 提供了一个获取资源的接口(包括跨域),在功能上与 XMLHttpRequest 有很多相似的地方,但被设计成更具可扩展性和高效性。
Fetch 的核心在于对 HTTP 接口的抽象,包括 Request、Response、Headers、Body,以及用于初始化异步请求的 global fetch。得益于 JavaScript 实现的这些抽象好的 HTTP 模块,其他接口能够很方便的使用这些功能。
PC 浏览器兼容性
Chrome
|
Opera
|
Firefox
|
IE
|
Edge
|
Safari
|
42
|
29
|
39
|
No
|
14
|
10.1
|
Mobile 浏览器兼容性
iOS Safari
|
Opera Mobile
|
Opera Mini
|
Android
|
Android Chrome
|
Android Firefox
|
10.3
|
46
|
No
|
67
|
70
|
63
|
语法
参数
-
input: 定义要获取的资源,这可能是
-
一个 String 字符串,包含要获取资源的 URL
-
一个 Request 对象
-
init:[可选]一个配置项对象,包括所有对请求的设置,可选参数有
-
method:请求使用的方法,如 GET、POST、PUT、DELETE 等
-
headers:请求的头信息,形式为 Headers 的对象或包含 ByteString 值的对象字面量
-
body:请求的 body 信息:可能是一个 Blob、BufferSource、FormData
-
URLSearchParams 或者 String 对象。注意 GET 或 HEAD 方法的请求不能包含 body 信息
-
mode:请求的模式,如 cors、no-cors 或者 same-origin
-
credentials:请求的 credentials,如 omit、same-origin 或者 include。为了当前域名内自动发送 cookie,必须提供这个选项,从 Chorme 50 实例,这个属性也可以受 FederateCrential 实例或是一个 PasswwordCredential 实例
-
cache:请求的 cache 模型:default、no-store、reload、no-cache、force-cache 或者 only-if-cached
-
redirect:可用的 redirect 模式:follow(自动重定向),error(如果产生重定向将自动终止并且抛出一个错误)
-
referer:一个 USVSting 可以是 no-referrer、click 或一个 URL。默认 client。
-
downgrade、orign、orgin-when-cross-origin、unsafe-url
-
integrity:包括请求的 subresource integrity 值
Guard
Guard 事 Headers 对象的特征。
当使用
Headers()
构造函数创建一个新的 Headers 对象的时候,它的 Guard 被设置成
none
(默认值)。
当创建 Request 和 Response 对象的时候,它将拥有一个按照以下规则实现的与之相关联的 Headers 对象。
Headers 类(请求头对象)能用于对 HTTP
request
和
response
的检索、设置、添加和删除等各种操作。
每个 Headers 类包含一个 Headers 列表,它的初始值为空或者零个或多个键值对。
方法
|
说明
|
append()
|
添加一个 header 信息
|
delete()
|
删除指定的 header
|
entries()
|
返回 header 对象中的所有键值对,是一个 Iterator 对象
|
get()
|
从 Headers 对象中返回指定的值
|
getAll()
|
获取所有的 header
|
has()
|
检测指定的 header 的键,返回布尔值
|
keys()
|
获取所有 header 的键,是一个 Iterator 对象
|
set()
|
修改或添加 header
|
values()
|
获取所有 header 的值,是一个 Iterator 对象
|