跳到主要内容
版本:v7

CapacitorHttp

Capacitor Http API 通过修补 fetchXMLHttpRequest 来使用原生库,提供原生 HTTP 支持。它还提供了无需使用 fetchXMLHttpRequest 的原生 HTTP 请求辅助方法。此插件与 @capacitor/core 捆绑提供。

配置

默认情况下,修补 window.fetchXMLHttpRequest 以使用原生库的功能是禁用的。 如果您希望启用此功能,请在 capacitor.config 文件中修改以下配置。

属性类型描述默认值
enabledboolean启用修补 fetchXMLHttpRequest 以使用原生库。false

配置示例

capacitor.config.json 中:

{
"plugins": {
"CapacitorHttp": {
"enabled": true
}
}
}

capacitor.config.ts 中:

import { CapacitorConfig } from '@capacitor/cli';

const config: CapacitorConfig = {
plugins: {
CapacitorHttp: {
enabled: true,
},
},
};

export default config;

示例

import { CapacitorHttp } from '@capacitor/core';

// GET 请求示例
const doGet = () => {
const options = {
url: 'https://example.com/my/api',
headers: { 'X-Fake-Header': 'Fake-Value' },
params: { size: 'XL' },
};

const response: HttpResponse = await CapacitorHttp.get(options);

// 或者...
// const response = await CapacitorHttp.request({ ...options, method: 'GET' })
};

// POST 请求示例。注意:数据可以作为原始 JS 对象传递(必须是可 JSON 序列化的)
const doPost = () => {
const options = {
url: 'https://example.com/my/api',
headers: { 'X-Fake-Header': 'Fake-Value' },
data: { foo: 'bar' },
};

const response: HttpResponse = await CapacitorHttp.post(options);

// 或者...
// const response = await CapacitorHttp.request({ ...options, method: 'POST' })
};

大文件支持

由于桥接的特性,从原生环境解析和传输大量数据到 Web 环境可能会导致问题。计划在不久的将来将下载和上传文件到原生设备的功能添加到 @capacitor/filesystem 插件中。与此同时,一种可能规避内存耗尽问题的方法(特别是在 Android 上)是编辑 AndroidManifest.xml 并在 application 元素中添加 android:largeHeap="true"。大多数应用程序不需要这样做,而应专注于减少整体内存使用以提高性能。启用此功能也不能保证固定增加可用内存,因为某些设备受其总可用内存的限制。

API

** HTTP 插件 ***

request(...)

request(options: HttpOptions) => Promise<HttpResponse>

使用原生库向服务器发出 HTTP 请求。

参数类型
options
HttpOptions

返回:

Promise<HttpResponse>


get(...)

get(options: HttpOptions) => Promise<HttpResponse>

使用原生库向服务器发出 HTTP GET 请求。

参数类型
options
HttpOptions

返回:

Promise<HttpResponse>


post(...)

post(options: HttpOptions) => Promise<HttpResponse>

使用原生库向服务器发出 HTTP POST 请求。

参数类型
options
HttpOptions

返回:

Promise<HttpResponse>


put(...)

put(options: HttpOptions) => Promise<HttpResponse>

使用原生库向服务器发出 HTTP PUT 请求。

参数类型
options
HttpOptions

返回:

Promise<HttpResponse>


patch(...)

patch(options: HttpOptions) => Promise<HttpResponse>

使用原生库向服务器发出 HTTP PATCH 请求。

参数类型
options
HttpOptions

返回:

Promise<HttpResponse>


delete(...)

delete(options: HttpOptions) => Promise<HttpResponse>

使用原生库向服务器发出 HTTP DELETE 请求。

参数类型
options
HttpOptions

返回:

Promise<HttpResponse>


Interfaces

HttpResponse

属性类型描述
dataany随 HTTP 响应接收的额外数据。
statusnumber从 HTTP 响应接收的状态码。
headers
HttpHeaders
从 HTTP 响应接收的标头。
urlstring从 HTTP 响应接收的响应 URL。

HttpHeaders

HttpOptions

属性类型描述
urlstring要发送请求的 URL。
methodstring要运行的 HTTP 请求方法。(默认为 GET)
params
HttpParams
要附加到请求的 URL 参数。
dataany注意:在 Android 和 iOS 上,数据只能是字符串或 JSON。FormData、BlobArrayBuffer 和其他复杂类型仅直接在 Web 上支持,或通过启用配置中的 CapacitorHttp 并使用修补的 window.fetchXMLHttpRequest 来支持。如果您需要发送复杂类型,应将数据序列化为 base64 并相应设置 headers["Content-Type"]dataType 属性。
headers
HttpHeaders
要随请求发送的 HTTP 请求标头。
readTimeoutnumber等待读取额外数据的超时时间(毫秒)。每次接收到新数据时重置。
connectTimeoutnumber初始连接的超时时间(毫秒)。
disableRedirectsboolean设置是否禁用自动 HTTP 重定向
webFetchExtra
RequestInit
在 Web 上运行时用于 fetch 的额外参数
responseType
HttpResponseType
用于在将响应返回给请求者之前适当解析响应。如果响应内容类型为 "json",则忽略此值。
shouldEncodeUrlParamsboolean如果您需要在某些情况下保持 URL 未编码(已编码、azure/firebase 测试等),请使用此选项。默认值为 true
dataType'file' | 'formData'如果我们必须从需要在本机层特殊处理的 JS 类型转换数据,则使用此选项

HttpParams

RequestInit

属性类型描述
body
BodyInit
一个 BodyInit 对象或 null 以设置请求的正文。
cache
RequestCache
一个字符串,指示请求如何与浏览器的缓存交互以设置请求的缓存。
credentials
RequestCredentials
一个字符串,指示是否总是、从不或仅在发送到同源 URL 时发送凭据。设置请求的凭据。
headers
HeadersInit
一个 Headers 对象、对象字面量或二元数组的数组以设置请求的标头。
integritystring要由请求获取的资源的加密哈希。设置请求的完整性。
keepaliveboolean一个布尔值以设置请求的 keepalive。
methodstring一个字符串以设置请求的方法。
mode
RequestMode
一个字符串,指示请求是否使用 CORS,或是否限制为同源 URL。设置请求的模式。
redirect
RequestRedirect
一个字符串,指示请求是否遵循重定向、在遇到重定向时出错或返回重定向(以不透明的方式)。设置请求的重定向。
referrerstring一个字符串,其值是同源 URL、"about:client" 或空字符串,以设置请求的引用者。
referrerPolicy
ReferrerPolicy
一个引用者策略以设置请求的 referrerPolicy。
signal
AbortSignal
一个 AbortSignal 以设置请求的信号。
windowany只能为 null。用于将请求与任何窗口分离。

Blob

一个不可变的原始数据文件类对象。Blob 表示不一定处于 JavaScript 原生格式的数据。File 接口基于 Blob,继承 blob 功能并将其扩展以支持用户系统上的文件。 Blob 类是 require('node:buffer').Blob 的全局引用 https://nodejs.org/api/buffer.html#class-blob

属性类型
sizenumber
typestring
方法签名
arrayBuffer() => Promise<ArrayBuffer>
slice(start?: number, end?: number, contentType?: string) => Blob
stream() => ReadableStream
text() => Promise<string>

ArrayBuffer

表示二进制数据的原始缓冲区,用于存储不同类型数组的数据。ArrayBuffers 不能直接读取或写入,但可以传递给类型化数组或 DataView 对象以根据需要解释原始缓冲区。

属性类型描述
byteLengthnumber只读。ArrayBuffer 的长度(字节)。
方法签名描述
slice(begin: number, end?: number) => ArrayBuffer返回 ArrayBuffer 的一个部分。

ReadableStream

此 Streams API 接口表示字节数据的可读流。Fetch API 通过 Response 对象的 body 属性提供 ReadableStream 的具体实例。

属性类型
lockedboolean
方法签名
cancel(reason?: any) => Promise<void>
getReader() => ReadableStreamDefaultReader<R>
pipeThrough<T>(transform: ReadableWritablePair<T, R>, options?: StreamPipeOptions) => ReadableStream<T>
pipeTo(dest: WritableStream<R>, options?: StreamPipeOptions) => Promise<void>
tee() => [ReadableStream<R>, ReadableStream<R>]

ReadableStreamDefaultReader

方法签名
read() => Promise<ReadableStreamDefaultReadResult<R>>
releaseLock() => void

ReadableStreamDefaultReadValueResult

属性类型
donefalse
valueT

ReadableStreamDefaultReadDoneResult

属性类型
donetrue
value

ReadableWritablePair

属性类型描述
readable
ReadableStream<R>
writable
WritableStream<W>
提供一种方便、可链式的方式将此可读流通过转换流(或任何其他 { writable, readable } 对)进行管道传输。它简单地将流传输到所提供对的可写侧,并返回可读侧以供进一步使用。管道传输流将在管道期间锁定它,防止任何其他消费者获取读取器。

WritableStream

此 Streams API 接口提供了一个标准抽象,用于将流数据写入目标(称为接收器)。此对象内置了背压和队列功能。

属性类型
lockedboolean
方法签名
abort(reason?: any) => Promise<void>
getWriter() => WritableStreamDefaultWriter<W>

WritableStreamDefaultWriter

此 Streams API 接口是 WritableStream.getWriter() 返回的对象,一旦创建,就将写入器锁定到 WritableStream,确保没有其他流可以写入底层接收器。

属性类型
closedPromise<undefined>
desiredSizenumber
readyPromise<undefined>
方法签名
abort(reason?: any) => Promise<void>
close() => Promise<void>
releaseLock() => void
write(chunk: W) => Promise<void>

StreamPipeOptions

属性类型描述
preventAbortboolean
preventCancelboolean
preventCloseboolean将此可读流管道传输到给定的可写流目标。可以通过传递的选项自定义管道过程在各种错误条件下的行为。它返回一个在管道过程成功完成时履行的 promise,或者在遇到任何错误时拒绝。管道传输流将在管道期间锁定它,防止任何其他消费者获取读取器。源和目标流的错误和关闭传播如下:此源可读流中的错误将中止目标,除非 preventAbort 为真。返回的 promise 将被源的错误或中止目标期间发生的任何错误拒绝。目标中的错误将取消此源可读流,除非 preventCancel 为真。返回的 promise 将被目标的错误或取消源期间发生的任何错误拒绝。当此源可读流关闭时,目标将被关闭,除非 preventClose 为真。返回的 promise 将在此过程完成时履行,除非在关闭目标时遇到错误,在这种情况下它将因该错误而被拒绝。如果目标一开始就关闭或正在关闭,此源可读流将被取消,除非 preventCancel 为 true。返回的 promise 将因指示管道传输到关闭流失败的错误或取消源期间发生的任何错误而被拒绝。signal 选项可以设置为 AbortSignal 以允许通过相应的 AbortController 中止正在进行的管道操作。在这种情况下,此源可读流将被取消,目标将被中止,除非 respective options preventCancel 或 preventAbort 已设置。
signal
AbortSignal

AbortSignal

一个信号对象,允许您与 DOM 请求(如 Fetch)通信,并在需要时通过 AbortController 对象中止它。

属性类型描述
abortedboolean如果此 AbortSignal 的 AbortController 已发出中止信号,则返回 true,否则返回 false。
onabort
(this: AbortSignal, ev: Event) => any
方法签名描述
addEventListener<K extends "abort">(type: K, listener: (this: AbortSignal, ev: AbortSignalEventMap[K]) => any, options?: boolean | AddEventListenerOptions) => void为类型属性值为 type 的事件追加事件监听器。callback 参数设置事件被分派时将调用的回调。options 参数设置监听器特定的选项。为了兼容性,这可以是一个布尔值,在这种情况下,该方法的行为完全如同值被指定为 options 的 capture。当设置为 true 时,options 的 capture 阻止 callback 在事件的事件阶段属性值为 BUBBLING_PHASE 时被调用。当为 false(或不存在)时,callback 在事件的事件阶段属性值为 CAPTURING_PHASE 时不会被调用。无论哪种方式,callback 将在事件的事件阶段属性值为 AT_TARGET 时被调用。当设置为 true 时,options 的 passive 表示 callback 不会通过调用 preventDefault() 来取消事件。这用于启用 §2.8 观察事件监听器中描述的性能优化。当设置为 true 时,options 的 once 表示 callback 只会被调用一次,之后事件监听器将被移除。事件监听器被追加到目标的事件监听器列表中,如果它具有相同的类型、回调和捕获,则不会被追加。
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions) => void为类型属性值为 type 的事件追加事件监听器。callback 参数设置事件被分派时将调用的回调。options 参数设置监听器特定的选项。为了兼容性,这可以是一个布尔值,在这种情况下,该方法的行为完全如同值被指定为 options 的 capture。当设置为 true 时,options 的 capture 阻止 callback 在事件的事件阶段属性值为 BUBBLING_PHASE 时被调用。当为 false(或不存在)时,callback 在事件的事件阶段属性值为 CAPTURING_PHASE 时不会被调用。无论哪种方式,callback 将在事件的事件阶段属性值为 AT_TARGET 时被调用。当设置为 true 时,options 的 passive 表示 callback 不会通过调用 preventDefault() 来取消事件。这用于启用 §2.8 观察事件监听器中描述的性能优化。当设置为 true 时,options 的 once 表示 callback 只会被调用一次,之后事件监听器将被移除。事件监听器被追加到目标的事件监听器列表中,如果它具有相同的类型、回调和捕获,则不会被追加。
removeEventListener<K extends "abort">(type: K, listener: (this: AbortSignal, ev: AbortSignalEventMap[K]) => any, options?: boolean | EventListenerOptions) => void从目标的事件监听器列表中移除具有相同类型、回调和选项的事件监听器。
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions) => void从目标的事件监听器列表中移除具有相同类型、回调和选项的事件监听器。

AbortSignalEventMap

属性类型
"abort"
Event

Event

在 DOM 中发生的事件。

属性类型描述
bubblesboolean根据事件的初始化方式返回 true 或 false。如果事件以其目标的祖先的反向树顺序进行,则为 true,否则为 false。
cancelBubbleboolean
cancelableboolean根据事件的初始化方式返回 true 或 false。其返回值并不总是有意义,但 true 可以表示事件被分派期间的操作部分可以通过调用 preventDefault() 方法取消。
composedboolean根据事件的初始化方式返回 true 或 false。如果事件调用其目标的 ShadowRoot 节点之外的监听器,则为 true,否则为 false。
currentTarget
EventTarget
返回当前正在调用其事件监听器回调的对象。
defaultPreventedboolean如果 preventDefault() 被成功调用以指示取消,则返回 true,否则返回 false。
eventPhasenumber返回事件的阶段,即 NONE、CAPTURING_PHASE、AT_TARGET 和 BUBBLING_PHASE 之一。
isTrustedboolean如果事件由用户代理分派,则返回 true,否则返回 false。
returnValueboolean
srcElement
EventTarget
target
EventTarget
返回事件被分派到的对象(其目标)。
timeStampnumber返回事件的时间戳,作为相对于时间原点测量的毫秒数。
typestring返回事件的类型,例如 "click"、"hashchange" 或 "submit"。
AT_TARGETnumber
BUBBLING_PHASEnumber
CAPTURING_PHASEnumber
NONEnumber
方法签名描述
composedPath() => EventTarget[]返回事件路径的调用目标对象(将调用监听器的对象),除了任何影子树中模式为 "closed" 且无法从事件的 currentTarget 访问的节点。
initEvent(type: string, bubbles?: boolean, cancelable?: boolean) => void
preventDefault() => void如果在可取消属性值为 true 时调用,并且在执行事件的监听器时 passive 设置为 false,则向导致事件被分派的操作发出信号,表示需要取消。
stopImmediatePropagation() => void调用此方法阻止事件到达当前监听器完成后任何已注册的事件监听器,并且在树中分派时,也阻止事件到达任何其他对象。
stopPropagation() => void在树中分派时,调用此方法阻止事件到达当前对象之外的任何对象。

EventTarget

EventTarget 是一个 DOM 接口,由可以接收事件并可能具有监听器的对象实现。 EventTarget 是一个 DOM 接口,由可以 接收事件并可能具有监听器的对象实现。

方法签名描述
addEventListener(type: string, listener: EventListenerOrEventListenerObject | null, options?: boolean | AddEventListenerOptions) => void为类型属性值为 type 的事件追加事件监听器。callback 参数设置事件被分派时将调用的回调。options 参数设置监听器特定的选项。为了兼容性,这可以是一个布尔值,在这种情况下,该方法的行为完全如同值被指定为 options 的 capture。当设置为 true 时,options 的 capture 阻止 callback 在事件的事件阶段属性值为 BUBBLING_PHASE 时被调用。当为 false(或不存在)时,callback 在事件的事件阶段属性值为 CAPTURING_PHASE 时不会被调用。无论哪种方式,callback 将在事件的事件阶段属性值为 AT_TARGET 时被调用。当设置为 true 时,options 的 passive 表示 callback 不会通过调用 preventDefault() 来取消事件。这用于启用 §2.8 观察事件监听器中描述的性能优化。当设置为 true 时,options 的 once 表示 callback 只会被调用一次,之后事件监听器将被移除。事件监听器被追加到目标的事件监听器列表中,如果它具有相同的类型、回调和捕获,则不会被追加。
dispatchEvent(event: Event) => boolean将合成事件 event 分派到目标,如果事件的 cancelable 属性值为 false 或其 preventDefault() 方法未被调用,则返回 true,否则返回 false。
removeEventListener(type: string, callback: EventListenerOrEventListenerObject | null, options?: EventListenerOptions | boolean) => void从目标的事件监听器列表中移除具有相同类型、回调和选项的事件监听器。

EventListener

EventListenerObject

方法签名
handleEvent(evt: Event) => void

AddEventListenerOptions

属性类型
onceboolean
passiveboolean

EventListenerOptions

属性类型
captureboolean

ArrayBufferView

属性类型描述
buffer
ArrayBufferLike
数组引用的 ArrayBuffer 实例。
byteLengthnumber数组的长度(字节)。
byteOffsetnumber数组的偏移量(字节)。

ArrayBufferTypes

允许的 ArrayBuffer 类型,用于 ArrayBufferView 和相关类型化数组的缓冲区。

属性类型
ArrayBuffer
ArrayBuffer

FormData

提供了一种简单的方式来构造一组键/值对,表示表单字段及其值,然后可以使用 XMLHttpRequest.send() 方法轻松发送。它使用与表单相同的格式,如果编码类型设置为 "multipart/form-data"。

方法签名
append(name: string, value: string | Blob, fileName?: string) => void
delete(name: string) => void
get(name: string) => FormDataEntryValue | null
getAll(name: string) => FormDataEntryValue[]
has(name: string) => boolean
set(name: string, value: string | Blob, fileName?: string) => void
forEach(callbackfn: (value: FormDataEntryValue, key: string, parent: FormData) => void, thisArg?: any) => void

File

提供有关文件的信息,并允许网页中的 JavaScript 访问其内容。

属性类型
lastModifiednumber
namestring

URLSearchParams

URLSearchParams 类是 require('url').URLSearchParams 的全局引用 https://nodejs.org/api/url.html#class-urlsearchparams

方法签名描述
append(name: string, value: string) => void将指定的键/值对作为新的搜索参数追加。
delete(name: string) => void从所有搜索参数列表中删除给定的搜索参数及其关联值。
get(name: string) => string | null返回与给定搜索参数关联的第一个值。
getAll(name: string) => string[]返回与给定搜索参数关联的所有值。
has(name: string) => boolean返回一个布尔值,指示是否存在这样的搜索参数。
set(name: string, value: string) => void将与给定搜索参数关联的值设置为给定值。如果有多个值,则删除其他值。
sort() => void
toString() => string返回包含适合在 URL 中使用的查询字符串的字符串。不包括问号。
forEach(callbackfn: (value: string, key: string, parent: URLSearchParams) => void, thisArg?: any) => void

Uint8Array

一个 8 位无符号整数值的类型化数组。内容初始化为 0。如果 请求的字节数无法分配,则会引发异常。

属性类型描述
BYTES_PER_ELEMENTnumber数组中每个元素的大小(字节)。
buffer
ArrayBufferLike
数组引用的 ArrayBuffer 实例。
byteLengthnumber数组的长度(字节)。
byteOffsetnumber数组的偏移量(字节)。
lengthnumber数组的长度。
方法签名描述
copyWithin(target: number, start: number, end?: number) => this在将数组中以 start 和 end 标识的部分复制到从位置 target 开始的同一数组后返回此对象
every(predicate: (value: number, index: number, array: Uint8Array) => unknown, thisArg?: any) => boolean确定数组的所有成员是否满足指定的测试。
fill(value: number, start?: number, end?: number) => this在将以 start 和 end 标识的部分填充 value 后返回此对象
filter(predicate: (value: number, index: number, array: Uint8Array) => any, thisArg?: any) => Uint8Array返回数组中满足回调函数中指定条件的元素。
find(predicate: (value: number, index: number, obj: Uint8Array) => boolean, thisArg?: any) => number | undefined返回数组中第一个谓词为 true 的元素的值,否则返回 undefined。
findIndex(predicate: (value: number, index: number, obj: Uint8Array) => boolean, thisArg?: any) => number返回数组中第一个谓词为 true 的元素的索引,否则返回 -1。
forEach(callbackfn: (value: number, index: number, array: Uint8Array) => void, thisArg?: any) => void对数组中的每个元素执行指定的操作。
indexOf(searchElement: number, fromIndex?: number) => number返回数组中第一次出现值的索引。
join(separator?: string) => string将数组的所有元素添加由指定分隔符字符串分隔。
lastIndexOf(searchElement: number, fromIndex?: number) => number返回数组中最后一次出现值的索引。
map(callbackfn: (value: number, index: number, array: Uint8Array) => number, thisArg?: any) => Uint8Array对数组的每个元素调用定义的回调函数,并返回包含结果的数组。
reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number) => number为数组中的所有元素调用指定的回调函数。回调函数的返回值是累积结果,并作为参数在下次调用回调函数时提供。
reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number, initialValue: number) => number
reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8Array) => U, initialValue: U) => U为数组中的所有元素调用指定的回调函数。回调函数的返回值是累积结果,并作为参数在下次调用回调函数时提供。
reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number) => number以降序为数组中的所有元素调用指定的回调函数。回调函数的返回值是累积结果,并作为参数在下次调用回调函数时提供。
reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number, initialValue: number) => number
reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8Array) => U, initialValue: U) => U以降序为数组中的所有元素调用指定的回调函数。回调函数的返回值是累积结果,并作为参数在下次调用回调函数时提供。
reverse() => Uint8Array反转数组中的元素。
set(array: ArrayLike<number>, offset?: number) => void设置一个值或值数组。
slice(start?: number, end?: number) => Uint8Array返回数组的一个部分。
some(predicate: (value: number, index: number, array: Uint8Array) => unknown, thisArg?: any) => boolean确定指定的回调函数是否对数组的任何元素返回 true。
sort(compareFn?: (a: number, b: number) => number) => this对数组进行排序。
subarray(begin?: number, end?: number) => Uint8Array获取此数组的 ArrayBuffer 存储的新 Uint8Array 视图,引用从 begin(包含)到 end(不包含)的元素。
toLocaleString() => string使用当前区域设置将数字转换为字符串。
toString() => string返回数组的字符串表示形式。
valueOf() => Uint8Array返回指定对象的原始值。

ArrayLike

属性类型
lengthnumber

Headers

此 Fetch API 接口允许您对 HTTP 请求和响应标头执行各种操作。这些操作包括检索、设置、添加和删除。Headers 对象有一个关联的标头列表,最初为空,由零个或多个名称和值对组成。您可以使用 append() 等方法添加到此列表(参见示例。)在此接口的所有方法中,标头名称通过不区分大小写的字节序列匹配。

方法签名
append(name: string, value: string) => void
delete(name: string) => void
get(name: string) => string | null
has(name: string) => boolean
set(name: string, value: string) => void
forEach(callbackfn: (value: string, key: string, parent: Headers) => void, thisArg?: any) => void

Type Aliases

BodyInit


  Blob | BufferSource | FormData |{' '}
  URLSearchParams | ReadableStream<
  Uint8Array> | string

ReadableStreamDefaultReadResult


  ReadableStreamDefaultReadValueResult<T> |{' '}
  ReadableStreamDefaultReadDoneResult

EventListenerOrEventListenerObject


  EventListener | EventListenerObject

BufferSource


  ArrayBufferView | ArrayBuffer

ArrayBufferLike

ArrayBufferTypes[keyof ArrayBufferTypes]

FormDataEntryValue


  File | string

RequestCache

"default" | "force-cache" | "no-cache" | "no-store" | "only-if-cached" | "reload"

RequestCredentials

"include" | "omit" | "same-origin"

HeadersInit


  Headers | string[][] | Record<string, string>

Record

用一组类型为 T 的属性 K 构造一个类型

{
[P in K]: T;
}

RequestMode

"cors" | "navigate" | "no-cors" | "same-origin"

RequestRedirect

"error" | "follow" | "manual"

ReferrerPolicy


"" | "no-referrer" | "no-referrer-when-downgrade" | "origin" | "origin-when-cross-origin" | "same-origin" |
"strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url"

HttpResponseType

如何在将 HTTP 响应返回给客户端之前解析它。

'arraybuffer' | 'blob' | 'json' | 'text' | 'document'