fetch()请求的底层用的是 的接口,参数完全一样,因此上面的 API 也是Request()的 API。

    这些属性里面,headersbodymethod前面已经给过示例了,下面是其他属性的介绍。

    cache

    cache属性指定如何处理缓存。可能的取值如下:

    • default:默认值,先在缓存里面寻找匹配的请求。
    • no-store:直接请求远程服务器,并且不更新缓存。
    • reload:直接请求远程服务器,并且更新缓存。
    • no-cache:将服务器资源跟本地缓存进行比较,有新的版本才使用服务器资源,否则使用缓存。
    • force-cache:缓存优先,只有不存在缓存的情况下,才请求远程服务器。
    • only-if-cached:只检查缓存,如果缓存里面不存在,将返回504错误。

    mode

    mode属性指定请求的模式。可能的取值如下:

    • cors:默认值,允许跨域请求。
    • no-cors:请求方法只限于 GET、POST 和 HEAD,并且只能使用有限的几个简单标头,不能添加跨域的复杂标头,相当于提交表单所能发出的请求。

    credentials

    跨域请求发送 Cookie,需要将credentials属性设为include

    signal

    signal属性指定一个 AbortSignal 实例,用于取消fetch()请求,详见下一节。

    keepalive

    keepalive属性用于页面卸载时,告诉浏览器在后台保持连接,继续发送数据。

    一个典型的场景就是,用户离开网页时,脚本向服务器提交一些用户行为的统计信息。这时,如果不用keepalive属性,数据可能无法发送,因为浏览器已经把页面卸载了。

    redirect

    integrity

    integrity属性指定一个哈希值,用于检查 HTTP 回应传回的数据是否等于这个预先设定的哈希值。

    比如,下载文件时,检查文件的 SHA-256 哈希值是否相符,确保没有被篡改。

    referrer

    referrer属性用于设定fetch()请求的标头。

    这个属性可以为任意字符串,也可以设为空字符串(即不发送referer标头)。

    referrerPolicy