3.2.2 Request 对象

参数:

  • resource 定义了要获取的资源,可以是以下一种

    1. URL 字符串

    2. 可被字符串化的对象,里面包含 URL 对象

    3. Request 对象

  • options 一个对象,可以自定义以下设置。一个对象,包含自定义设置,可以应用到 HTTP Request 上

最常用:

  1. method 请求方法,比如 GET, POST

  2. headers 要添加到请求中的 headers,可以是 Headers 对象,也可以是 JSON 对象。注意 Forbidden Header Names(只能由用户代理添加,不能由程序)

  3. body 要添加到请求中的任何 body,可以是 URLSearchParams, FormData, 字符串格式的对象, Blob, ArrayBuffer, TypedArray, DataViewReadableStream 对象。注意,使用 GETHEAD 方法的请求不能有 body

似懂非懂不知道具体咋用:

  1. mode 要用于请求的模式,比如 cors, no-corssame-origin

  2. integrity 包含请求的子资源完整性值

  3. credentials 证书,控制浏览器如何处理凭据(cookie, HTTP 身份验证和 TLS 客户端证书)

    1. 必须是以下字符串之一:

      • same-origin 同源(默认值)。告诉浏览器在同源 URL 的请求中包含凭据,同时使用同源 URL 响应中的所有凭据(比如 Set-Cookie header)

      • omit 忽略。告诉浏览器排除请求中的凭据,同时忽略响应中的所有凭据

      • include 包括。告诉浏览器在同域和跨域的请求中都包含凭据,同时始终使用响应中的所有凭据

    2. 注意:credentials 不应包含在 CORS preflight requests(CORS 预检请求)中。

      1. CORS,Cross-Origin Resource Sharing,跨域资源共享。

含义明确:

  1. referrer 指定请求的引用者,可以是同源 URL, about:client 或空字符串

  2. referrerPolicy

  3. redirect,如何处理重定向响应,取值可以是 follow, error, manual

  4. cache 缓存。表示请求该如何和浏览器的 HTTP 缓存进行交互,取值可以是 default, no-store, reload, no-cache, force-cacheonly-if-cached。详见 Request.cache

  5. keepalive 允许请求 outlive 页面。带有 keepalive 标志的 Fetch 是 Navigator.sendBeacon() API 的替代品——将包含少量数据的 HTTP POST 请求异步发送到 Web 服务器,比如分析数据。

  6. signal 一个 AbortSignal 对象实例,能和 fetch request 进行通信以在需要的时候通过 AbortController 中止它

Last updated