codecamp

Fetch API基本概念

所述Fetch API提供了用于获取资源(包括通过网络)的接口。任何使用过 XMLHttpRequest 的人似乎都会对Fetch API感到熟悉,但它提供了一个更强大和更灵活的功能集。本文解释了Fetch API的一些基本概念。

本文将随着时间的推移而添加。如果您发现您认为需要更好解释的Fetch概念,请在W3Cschool编程问答中提出您的疑问。

Fetch API简述

简单来说,Fetch的核心是HTTP Requests,Responses Headers和Bodypayload 的接口抽象,以及一个用于启动异步资源请求的全局fetch方法。由于HTTP的主要组件被抽象为JavaScript对象,所以其他API可以很容易利用这些功能。

Service Workers是大量使用Fetch API的一个示例。

Fetch将这种请求的异步性质进一步提升了一步。API是完全基于Promise的。

Guard

Guard是Headers对象的一个特征,具有可能的值有:immutable,request,request-no-cors,response或none,具体取决于header被使用的地方。

当使用Headers()构造函数创建新的Headers对象时,其Guard被设置为none(默认值)。当一个Request或一个Response对象被创建时,它有一个关联的Headers对象,它的Guard设置如下:

新对象的类型创建构造函数关联Headers对象的Guard设置
RequestRequest()request
Request()使用no-corsmoderequest-no-cors
ResponseResponse()response
error()redirect()方法immutable

一个header的Guard影响set()、delete()和append()方法,它改变了header的内容。如果你试图修改其Guard是immutable的Headers对象,则会引发 TypeError。不过,如果这个操作会在下列情况中起作用:

  • Guard是request和header名称不是一个禁止的header名称。
  • Guard是request-no-cors并且header的name/value是一个简单的header。
  • Guard是response和header名称不是一个禁止响应header名称。
开始学习Fetch API
使用Fetch
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

Fetch API官方文档指南

Fetch API方法

WindowOrWorkerGlobalScope执行者:window

window属性

WindowOrWorkerGlobalScope执行者:WorkerGlobalScope

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }