跳到主要内容

HTTP 响应

响应 接口是 Fetch API 的一部分,表示了 fetch() 的响应资源。

构造函数

Response() 构造函数创建一个新的 Response 实例。

let response = new Response(body, init);

参数

名称类型可选描述
bodyBlob, BufferSource, FormData, ReadableStream, URLSearchParams, 或 USVStringtrue响应的主体。默认值为 null
initResponseInittrue一个可选对象,允许设置响应的状态和头部。

返回类型是 Response 实例。

ResponseInit
名称类型可选描述
statusnumbertrue响应的状态码。
statusTextstringtrue代表状态码的状态消息。
headersHeadersstring[][]Record<string, string>false响应的 HTTP 头部。

属性

名称类型只读描述
bodyReadableStreamtrue获取器公开主体内容的 ReadableStream
bodyUsedbooleantrue表示主体内容是否已读取。
urlUSVStringtrue响应的 URL。
headersHeaderstrue与响应关联的头部。
okbooleantrue表示响应是否成功(状态码在 200-299 范围内)。
redirectedbooleantrue表示响应是否是重定向的结果。
statusnumbertrue响应的状态码。
statusTextstringtrue响应的状态消息。
typestringtrue响应的类型。

方法

名称描述
arrayBuffer()读取主体流并返回一个 ArrayBuffer 对象。
blob()读取主体流并返回一个 Blob 对象。
formData()读取主体流并返回一个 FormData 对象。
json()读取主体流并返回一个 JavaScript 对象,解析为 JSON。
text()读取主体流并返回一个 USVString 对象(文本)。
clone()克隆响应对象。
error()返回与网络错误相关联的新响应对象。
redirect(url: string, status?: number)创建一个重定向到提供的 URL 的新响应。

示例

import { serve } from "https://deno.land/std@0.208.0/http/server.ts";

function handler(_req) {
// 创建一个以 HTML 为主体的响应。
const response = new Response("<html> 你好 </html>", {
status: 200,
headers: {
"content-type": "text/html",
},
});

console.log(response.status); // 200
console.log(response.headers.get("content-type")); // text/html

return response;
}

serve(handler);