Response
说明
边缘函数中,可通过两种方式获得
Response
对象:使用
Response
构造函数创建一个 Response 对象,用于 event.respondWith 响应。使用 fetch 获取请求响应 Response 对象。
构造函数
const response = new Response(body?: string | ArrayBuffer | Blob | ReadableStream | null | undefined, init?: ResponseInit);
参数
参数名称 | 类型 | 必填 | 说明 |
body | 是 | Response 对象的 body 内容。 | |
init | 否 | Response 对象的初始化配置项。 |
ResponseInit
参数名称 | 类型 | 必填 | 说明 |
status | number | 否 | 响应的状态码。 |
statusText | string | 否 | 响应的状态消息,最大长度为 4095,超出长度会被截断。 |
headers | 否 | 响应的头部信息。 |
实例属性
body
// response.bodyreadonly body: ReadableStream;
bodyUsed
// response.bodyUsedreadonly bodyUsed: boolean;
标识响应体是否已读取。
headers
// response.headersreadonly headers: Headers;
ok
// response.okreadonly ok: boolean;
标识响应是否成功(状态码在 200-299 范围内)。
status
// resposne.statusreadonly status: number;
响应状态代码。
statusText
// resposne.statusTextreadonly statusText: string;
响应的状态消息。
url
// response.urlreadonly url: string;
响应的 url。
redirected
// response.redirectedreadonly redirected: boolean;
标识响应是否为重定向的结果。
redirectUrls
// response.redirectUrlsreadonly redirectUrls: Array<String>
所有重定向 URL。
实例方法
注意
获取响应体方法,接收
HTTP body
最大字节数为 1M,超出大小会抛出 OverSize 异常。超出大小时推荐使用 response.body 流式读取,详情参见 ReadableStream。arrayBuffer
response.arrayBuffer(): Promise<ArrayBuffer>;
blob
response.blob(): Promise<Blob>;
clone
response.clone(copyHeaders?: boolean): Request;
创建响应对象的副本。
参数
属性名 | 类型 | 必填 | 说明 |
copyHeaders | boolean | 否 | 开启复制响应头,默认值为 false ,取值说明如下。true 复制原对象的响应头。 false 引用原对象的响应头。 |
json
response.json(): Promise<object>;
获取响应体,解析结果为
json
。text
response.text(): Promise<string>;
获取响应体,解析结果为文本字符串。
formData
response.formData(): Promise<FormData>;
静态方法
error
Response.error(): Response;
redirect
Response.redirect(url: string | URL, status?: number): Response;
参数
属性名 | 类型 | 必填 | 说明 |
url | string | 是 | 重定向地址 |
status | number | 否 | 用于 response 的可选的状态码,允许 301/302/303/307/308, 默认 302 |
示例代码
addEventListener('fetch', (event) => {const response = new Response('hello world');event.respondWith(response);});