---
title: "HTTP 响应"
oldUrl:
- /deploy/docs/response/
- /deploy/api/response/
---
:::info 旧版本文档
您正在查看 Deno Deploy Classic 的旧版本文档。我们建议
迁移到新的
Deno Deploy 平台。
:::
[Response](https://developer.mozilla.org/en-US/docs/Web/API/Response)
接口是 Fetch API 的一部分,表示 fetch() 的响应资源。
- [构造函数](#构造函数)
- [参数](#参数)
- [属性](#属性)
- [方法](#方法)
- [示例](#示例)
## 构造函数
Response() 构造函数创建一个新的 Response 实例。
```ts
let response = new Response(body, init);
```
#### 参数
| 名称 | 类型 | 可选 | 描述 |
| ---- | --------------------------------------------------------------------------------------- | ---- | ---------------------------------------------------------------------- |
| body | `Blob`,`BufferSource`,`FormData`,`ReadableStream`,`URLSearchParams` 或 `USVString` | `true` | 响应的主体。默认值为 `null`。 |
| init | `ResponseInit` | `true` | 可选对象,允许设置响应的状态和头部信息。 |
返回类型为一个 `Response` 实例。
##### `ResponseInit`
| 名称 | 类型 | 可选 | 描述 |
| ------------ | ----------------------------------------------------- | ---- | --------------------------------------------------------- |
| `status` | `number` | `true` | 响应的状态码。 |
| `statusText` | `string` | `true` | 表示状态码的状态信息。 |
| `headers` | `Headers` 或 `string[][]` 或 `Record` | `false` | 响应的 HTTP 头信息。 |
## 属性
| 名称 | 类型 | 只读 | 描述 |
| -------------------------- | ---------------- | ---- | ----------------------------------------------------------- |
| [`body`][body] | `ReadableStream` | `true` | getter 返回主体内容的 `ReadableStream`。 |
| [`bodyUsed`][bodyused] | `boolean` | `true` | 表示主体内容是否已被读取。 |
| [`url`][url] | `USVString` | `true` | 响应的 URL。 |
| [`headers`][headers] | `Headers` | `true` | 与响应相关的头部信息。 |
| [`ok`][ok] | `boolean` | `true` | 表示响应是否成功(状态码在 200-299 之间)。 |
| [`redirected`][redirected] | `boolean` | `true` | 表示响应是否是重定向的结果。 |
| [`status`][status] | `number` | `true` | 响应的状态码。 |
| [`statusText`][statustext] | `string` | `true` | 响应的状态信息。 |
| [`type`][type] | `string` | `true` | 响应的类型。 |
## 方法
| 名称 | 描述 |
| ---------------------------------------------------- | --------------------------------------------------------------------------------------- |
| [`arrayBuffer()`][arraybuffer] | 读取主体流直到完成并返回一个 `ArrayBuffer` 对象。 |
| [`blob()`][blob] | 读取主体流直到完成并返回一个 `Blob` 对象。 |
| [`formData()`][formdata] | 读取主体流直到完成并返回一个 `FormData` 对象。 |
| [`json()`][json] | 读取主体流直到完成,将其解析为 JSON 并返回一个 JavaScript 对象。 |
| [`text()`][text] | 读取主体流直到完成并返回一个 USVString 对象(文本)。 |
| [`clone()`][clone] | 克隆响应对象。 |
| [`error()`][error] | 返回一个与网络错误相关的新响应对象。 |
| [`redirect(url: string, status?: number)`][redirect] | 创建一个新的响应,重定向到提供的 URL。 |
## 示例
```ts
function handler(_req) {
// 创建一个以 HTML 为主体的响应。
const response = new Response(" Hello ", {
status: 200,
headers: {
"content-type": "text/html",
},
});
console.log(response.status); // 200
console.log(response.headers.get("content-type")); // text/html
return response;
}
Deno.serve(handler);
```
[clone]: https://developer.mozilla.org/zh-CN/docs/Web/API/Response/clone
[error]: https://developer.mozilla.org/zh-CN/docs/Web/API/Response/error
[redirect]: https://developer.mozilla.org/zh-CN/docs/Web/API/Response/redirect
[body]: https://developer.mozilla.org/zh-CN/docs/Web/API/Body/body
[bodyused]: https://developer.mozilla.org/zh-CN/docs/Web/API/Body/bodyUsed
[url]: https://developer.mozilla.org/zh-CN/docs/Web/API/Request/url
[headers]: https://developer.mozilla.org/zh-CN/docs/Web/API/Request/headers
[ok]: https://developer.mozilla.org/zh-CN/docs/Web/API/Response/ok
[redirected]: https://developer.mozilla.org/zh-CN/docs/Web/API/Response/redirected
[status]: https://developer.mozilla.org/zh-CN/docs/Web/API/Response/status
[statustext]: https://developer.mozilla.org/zh-CN/docs/Web/API/Response/statusText
[type]: https://developer.mozilla.org/zh-CN/docs/Web/API/Response/type
[method]: https://developer.mozilla.org/zh-CN/docs/Web/API/Request/method
[readablestream]: https://developer.mozilla.org/zh-CN/docs/Web/API/ReadableStream
[arraybuffer]: https://developer.mozilla.org/zh-CN/docs/Web/API/Body/arrayBuffer
[blob]: https://developer.mozilla.org/zh-CN/docs/Web/API/Body/blob
[json]: https://developer.mozilla.org/zh-CN/docs/Web/API/Body/json
[text]: https://developer.mozilla.org/zh-CN/docs/Web/API/Body/text
[formdata]: https://developer.mozilla.org/zh-CN/docs/Web/API/Body/formdata