- 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 与 XMLHttpRequest
XMLHttpRequest 对象用于与服务器异步通信,这意味着我们可以在后台与服务器交换数据,而无需刷新整个页面。XMLHttpRequest 是最常用的技术,这就是为什么大多数主流浏览器(如 Google Chrome、Safari、Mozilla Firefox 或 Opera)都使用它的原因。它还支持纯文本、JSON 数据和更多数据格式。它非常易于使用,并提供了各种方法和属性来执行操作。我们可以使用 XMLHttpRequest() 构造函数创建一个 XMLHttpRequest 对象。
语法
variableName = new XMLHttpRequest()
使用 new 关键字和 XMLHttpRequest() 构造函数时,我们能够创建新的 XMLHttpRequest 对象。必须先创建此对象,然后再调用 open() 函数进行初始化,然后才能调用 send() 函数将请求发送到 Web 服务器。
Fetch API 提供了一个接口,用于从服务器获取/检索资源。它是 XMLHttpRequest 的现代替代方案。它支持 Request 和 Response 的通用定义,因此,如果缓存 API、服务工作、处理或修改请求和响应等需要,我们可以在将来访问它们。它非常简单、简单且一致。或者我们可以说,与 XMLHttpRequest 相比,它为创建 HTTP 请求和处理响应提供了一种现代而灵活的方法。它基于 Promise API,提供清晰的语法和更好的错误处理。
语法
fetch(res)
其中 fetch() 需要一个强制参数,即 res。res 参数定义您要获取的资源,它可以是字符串或任何其他对象,也可以是请求对象。除了强制参数外,它还可以采用一个可选参数,可以是 method、headers、body、mode cache、same-origin 等。
获取 API VS XMLHttpRequest
以下是 Fetch API 和 XMLHttpRequest 之间的区别 -
差异 | 获取 API | XMLHttp请求 |
---|---|---|
语法 |
众所周知,Fetch API 是一个基于 Promise 的 API,因此它提供了更清晰的语法和更好的错误处理方法。 |
XHR 基于回调方法,其语法不如 Fetch API。 |
跨域资源共享 (CROS) |
Fetch API 明智地处理 CROS 请求,无需任何其他配置。 |
XMLHttpRequest 需要一个特殊的配置来处理或发出跨域请求。 |
请求和响应标头 |
Fetch API 提供了更灵活的方法来处理请求和响应标头。 |
XMLHttpRequest 提供了有限数量的方法来处理请求和响应标头。 |
流式处理和解析 |
Fetch API 为流式处理和解析大型响应提供了良好的支持,因此它提高了性能并减少了内存使用量。 |
XMLHttpRequest 需要一个自定义程序来获得此功能。 |
浏览器兼容性 |
Fetch API 是新的,因此旧版本的浏览器可能不支持它。 |
XMLHttpRequest 已经使用了很多年,因此几乎所有浏览器都支持它。 |
Cookie 和凭据控制 |
Fetch API 提供了对 cookie 和凭据的良好控制,因此与 XMLHttpRequest 相比,我们可以轻松地进行身份验证和授权。 |
XMLHttpRequest 对 Cookie 和凭据的支持较少。 |
超时 |
Fetch API 不支持超时,因此请求将继续,直到浏览器选择请求。 |
XMLHttpRequest 支持超时。 |
结论
所以这些是 Fetch API 和 XMLHttpRequest 之间的主要区别。与 XMLHttpRequest 相比,Fetch API 功能更强大、更容易理解。所有现代浏览器也支持它,但只有旧浏览器支持 XMLHttpRequest。现在在下一篇文章中,我们将学习 fetch() 函数。