- AJAX 教程
- AJAX - 教程
- AJAX - 什么是 AJAX?
- Ajax - 历史
- Ajax - 动态站点与静态站点
- AJAX - 技术
- AJAX - action(操作)
- AJAX - XMLHttpRequest
- AJAX - 发送请求
- AJAX - 请求类型
- AJAX - 处理响应
- AJAX - 处理二进制数据
- AJAX - 提交表单
- AJAX - 文件上传
- AJAX - FormData 对象
- AJAX - 发送 POST 请求
- AJAX - 发送 PUT 请求
- AJAX - 发送 JSON 数据
- AJAX - 发送数据对象
- AJAX - 监控进度
- AJAX - 状态代码
- AJAX - 应用程序
- AJAX - 浏览器兼容性
- AJAX - 浏览器支持
- AJAX - 数据库操作
- AJAX - 安全性
- AJAX - 常见问题
- Fetch API 基础知识
- Fetch API - 基础知识
- Fetch API 与 XMLHttpRequest
- Fetch API - 浏览器兼容性
- Fetch API - headers
- Fetch API - 请求
- Fetch API - 响应
- Fetch API - 正文数据
- Fetch API - 凭证
- Fetch API - 发送 GET 请求
- Fetch API - 发送 POST 请求
- Fetch API - 发送 PUT 请求
- Fetch API - 发送 JSON 数据
- Fetch API - 发送数据对象
- Fetch API - 自定义请求对象
- Fetch API - 上传文件
- Fetch API - 处理二进制数据
- Fetch API - 状态代码
- Stream API 基础知识
- Stream API - 基础
- Stream API - 可读流
- Stream API - 可写流
- Stream API - 转换流
- stream API - 请求对象
- stream API - 响应正文
- Stream API - 错误处理
Fetch API - 响应
Fetch API 提供了一个特殊的接口来创建对请求的响应,该接口的名称是 Response。此接口提供了一个 Response() 构造函数来创建响应对象。它提供了各种方法和属性来访问和处理响应数据。
构造 函数
要创建响应对象,我们可以使用 Response() 构造函数和 new 关键字。此构造函数可能包含参数,也可能不包含参数。
语法
const newResponse = New Response()
Or
const newResponse = New Response(rBody)
Or
const newResponse = New Response(rBody, rOption)
Response() 构造函数具有以下参数 −
- rBody - 它表示一个对象,该对象定义响应的主体。其值可以是 null(默认值)或 blob、ArrayBuffer、TypedArray、DataView、FormData、String、URLSearchParams、字符串文本或 ReadableStream。
- Options − 它是一个对象,用于提供我们想要应用于响应的自定义设置,选项包括:
- headers − 它用于向响应添加标头。默认情况下,此参数的值为空。它的值可以是 Header 对象或 string 的对象文本。
- status − 此参数表示响应的状态代码。其默认值为 200。
- statusText − 此参数表示与状态代码相关的状态消息,如“Not Found”。其默认值为 “”。
在下面的程序中,我们使用 fetch() 函数从给定的 URL 中获取数据,然后以 JSON 格式显示响应数据。
<!DOCTYPE html>
<html>
<body>
<script>
// Data
const option = {message: "Hello Tom. How are you?"};
// creating header object
const newResponse = new Response(JSON.stringify(option), {
status: 200,
statusText:" Receive data successfully"
});
// Displaying response
console.log(newResponse)
</script>
<h2>Fetch API Example</h2>
<div>
<!-- Displaying retrieved data-->
<p id="sendData"></p>
</div>
</body>
</html>
输出
实例属性
Response 接口提供的属性是只读属性。所以常用的属性是 -
属性 | 描述 |
---|---|
Response.body |
此属性包含 ReadableStream 正文内容。 |
Response.ok |
此属性检查响应是否成功。此属性的值以 boolean 为单位。 |
Response.bodyUsed |
此属性用于检查响应中是否使用了正文。其值为 boolean。 |
Response.redirected |
此属性用于检查响应是否是重定向的结果。它的值以布尔值表示。 |
Response.status |
此属性包含响应的状态代码。 |
Response.statusText |
此属性根据状态代码提供状态消息。 |
Response.type |
此属性提供响应的类型。 |
Response.url |
此属性提供响应的 URL。 |
Response.header |
此属性提供给定响应的 Header 对象。 |
例
在下面的程序中,我们使用 Response 接口提供的属性。
<!DOCTYPE html>
<html>
<body>
<h2>Fetch API Example</h2>
<script>
// GET request using fetch()function
fetch("https://jsonplaceholder.typicode.com/todos")
.then(response => {
// Finding response URL
console.log("URL is: ", response.url);
// Getting response text
console.log("Status Text: ", response.statusText);
// Getting response status
console.log("Status Code: ", response.status);
}).catch(err =>{
// Handling error
console.log("Found Error:", err);
});
</script>
</body>
</html>
输出
方法
以下是 Response 接口常用的方法 -
方法 | 描述 |
---|---|
Request.arrayBuffer() |
此方法用于返回一个 Promise,该 Promise 将使用响应体的 ArrayBuffer 表示进行解析。 |
Request.blob() |
此方法用于返回一个 Promise,该 Promise 将使用响应正文的 Blob 表示进行解析。 |
Request.clone() |
此方法用于创建当前响应对象的副本。 |
Request.json() |
此方法用于将响应正文解析为 JSON 并返回一个 Promise,该 Promise 将使用解析结果进行解析。 |
Request.text() |
此方法用于返回一个 Promise,该 Promise 将使用响应正文的文本表示形式进行解析。 |
Request.formData() |
此方法用于返回一个 Promise,该 Promise 将使用响应正文的 FormData 表示进行解析。 |
Response.error() |
此方法返回与网络错误相关的新 Response 对象。它是一种静态方法。 |
Response.redirect |
此方法返回具有不同 URL 的新 Response 对象。它是一种静态方法。 |
Response.json() |
此方法为返回的 JSON 编码数据返回一个新的 Response 对象。它是一种静态方法。 |
例
在下面的程序中,我们使用 Response 接口提供的方法。所以在这里,我们将使用 json() 函数来解析 JSON 格式的响应。
<!DOCTYPE html>
<html>
<body>
<script>
// GET request using fetch()function
fetch("https://jsonplaceholder.typicode.com/todos/2", {
// Method Type
method: "GET"})
// Parsing the response data into JSON
// Using json() function
.then(response => response.json())
.then(myData => {
// Display output
document.getElementById("manager").innerHTML = JSON.stringify(myData);
}).catch(newError =>{
// Handling error
console.log("Found Error:", newError)
});
</script>
<h2>Display Data</h2>
<div>
<!-- Displaying retrevie data-->
<table id = "manager"></table>
</div>
</body>
</html>
输出
结论
这就是 Response 接口与 fetch API 一起工作的方式。使用 Response 接口,我们可以提取和处理服务器提供的响应。它还提供了用于提取和处理响应的各种方法和属性。现在在下一篇文章中,我们将了解 fetch API 中的 body 数据。