Fetch API 是近年来被提及将要取代 XHR 的技术新标准,是一个 HTML5 的 API。
Fetch 并不是 XHR 的升级版本,而是从一个全新的角度来思考的一种设计。
语法
1 | Promise<Response> fetch(input[, init]); |
参数
input 定义要获取的资源
init 配置项对象(可选)
method
:请求使用的方法,如GET
、POST
。headers
:请求的头信息,形式为Headers
的对象或包含ByteString
值的对象字面量。body
:请求的 body 信息:可能是一个Blob
、BufferSource
、FormData
、URLSearchParams
或者USVString
对象。注意 GET 或 HEAD 方法的请求不能包含 body 信息。mode
:请求的模式- cors:允许跨域,要求响应中
Acess-Control-Allow-Origin
这样的头部表示允许跨域。 - no-cors:只允许使用
HEAD
、GET
、POST
方法。 - same-origin:只允许同源请求,否则直接报错。
- navigate:支持页面导航。
- cors:允许跨域,要求响应中
credentials
:表示是否发送 cookie- omit:不发送 cookie。
- same-origin:仅在同源时发送 cookie。
- include:发送 cookie。
cache
:表示处理缓存的策略,请求的 cache 模式:default
、no-store 、
reload 、
no-cache 、
force-cache
或者only-if-cached 。
redirect
:表示发生重定向时,可用的 redirect 模式follow
:自动重定向。error
:如果产生重定向将自动终止并且抛出一个错误。manual
:手动处理重定向。在 Chrome 中,Chrome 47 之前的默认值是 follow,从 Chrome 47 开始是 manual。
referrer
:一个USVString
可以是no-referrer
、client
或一个 URL。默认是client
。integrity
:包含一个用于验证资资源完整性的字符串。
示例
GET:
1 | fetch('/some/url', { method: 'GET' }) |
POST:
1 | fetch('/some/url', { |