内容简介:html5 引入了新的网络请求接口使用 fetch 用户数据列表。async/await 语法
html5 引入了新的网络请求接口 Fetch API
,原生支持Promise,可配合 async/await 语法使用。
Fetch 实例
使用 fetch 用户数据列表。
fetch('/users') .then(res=>res.json())//服务器返回的是json .then(user=>{console.log(user);}) .catch(error=>{console.log(error);}) 复制代码
async/await 语法
async function getUsers() { try { let res = await fetch('/users'); let users = await res.json(); console.log(users) } catch (error) { console.log(error) } } 复制代码
fetch 返回的不是真正需要的数据,而是一个 Promise
,所有还需要使用它提供的方法进一步获取想要的数据。
具体用法
两种调用方式:
fetch(url,options) fetch(req,options) 复制代码
推荐使用第一种,一眼就可以看到url,更加直观。
options 是一个对象,可设置以下字段:
- method:请求方法,默认GET;
-
headers:请头信息,可以是简单的对象,也可以是
Headers
的实例; -
body:发送数据。
Blod
、bufferSource
、FormData
、URLSearchParams
、USVstring
,GET、HEAD 没有body; -
mode:请求模式。
- cors:跨域请求;
-
no-cors:只允许使用
GET
、HEAD
、POST
; - same-origin:同源请求;
- navigate:支持页面导航(不太明白)。
-
credentials:是否发送
cookies
:- omit:不发送,默认;
- same-origin:同源发送;
- include:发送。
-
cache:缓存策略:
same-origin
-
redirect:重定向时的处理方法:
- follow:跟随;
- error:报错;
- manual:用户手动跟随。
- integrity:包含一个验证资源完整性的字符串。
Headers
Headers 用于构造请求头信息,构造函数接收一个对象,对象的 key-value
就是请求头的信息。
let headers = new Headers( { 'content-type':'text/plain', 'content-length':data.toString().length } ); headers.append('X-Custom-header','AnotherValue');//追加 headers.has('content-type');//true 查询 headers.get('content-type');//'text/plain' 获取 // headers.getAll('content-type');//['text/plain'] getAll 被移除了 headers.delete('content-type');//删除 headers.set('content-type','json');//重写 复制代码
Request
请求对象。可以新建一个,也可以从已有的对象中继承。
let Url = '/users'; let req = new Request(Url,{method:'GET',headers}) // 扩展 request let postReq= new Requset(req,{method:'POST'}) 复制代码
Response
Response 实例是 fertch 处理完 promise 之后的返回的。也可以手动创建,在 servoceWorkers
中才真实有用。
let res = new Response(body,init) 复制代码
body 可以是 Bolb
、 BufferSource
、 FormData
、 URLSearchParams
、 USVString
这些值。
init 是一个对象,可包含以下字段:
- status:响应状态码;
- statusText:状态文本;
- headers:头部信息,普通对象或Headers 的实例。
response 的实例还有一些可读属性:
-
ok:请求是否成功,状态码为 2xx 都为
true
; - status:状态码;
- statusText:状态文本;
- bodyUesed:响应数据是否被用过;
- headers:头部信息;
- url:响应地址;
-
type:响应类型:
no-cors
response 有一些方法来 reslove 响应信息。
- json,解析响应信息为对象,resolve promise;
- text,…………字符串…………;
- bolb,转化响应Bold,resolve;
- formData,………………;
- arrayBuffer,…………。
以上所述就是小编给大家介绍的《Fetch API 入门使用》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
HTTP Essentials
Stephen A. Thomas、Stephen Thomas / Wiley / 2001-03-08 / USD 34.99
The first complete reference guide to the essential Web protocol As applications and services converge and Web technologies not only assume HTTP but require developers to manipulate it, it is be......一起来看看 《HTTP Essentials》 这本书的介绍吧!