提问人:He llup 提问时间:11/6/2023 更新时间:11/6/2023 访问量:55
HTTP 表单元素与 Fetch 和 XMLHttpRequest
HTTP Form Element vs Fetch and XMLHttpRequest
问:
我目前正在学习 Web 开发并遇到了 HTTP。让我感到困惑的一件事是如何准确地发出 HTTP 请求。在我观看的视频中,他们发送 HTTP 请求的主要方式是通过表单元素。做了更多的研究,我还发现 HTTP 请求可以通过 Fetch 和 XMLHttpRequest 手动完成。
所以我对这 3 个是如何工作的以及选择其中一个的好处有点困惑。如果我犯了任何错误,我深表歉意,但我对整个事情感到困惑。我尝试使用 Fetch 手动发送 PUT 和 POST 等 HTTP 请求,但这有点混乱。大多数教程都使用表单元素来做到这一点,所以现在我想知道这是否就是应该这样做的方式。
我还阅读了通过 JavaScript 发送表单,但它完全超出了我的脑海。
因此,我尝试查找各种教程和网站来解释HTML/CSS和Javascript的HTTP请求问题。我希望有人能解释一下 Forms、Fetch 和 XMLHttpRequest 之间的区别。如果在这种情况下适用,那么使用一个而不是另一个的权衡是什么。
答:
形式:
- 工作原理:表单是允许用户输入数据并将其提交到服务器的 HTML 元素。当您提交表单时,浏览器通常会向服务器发送 HTTP 请求。
- 用例:表单适用于基本数据提交,尤其是当您有用户输入(如文本字段、复选框等)时。
- 权衡:表单适用于简单情况,但当需要对请求进行更多控制或处理更复杂的数据时,表单可能不如其他方法灵活或强大。
XMLHttp请求:
- 工作原理:XMLHttpRequest 是一个较旧的 JavaScript API,用于发出 HTTP 请求。它提供了一种发送 HTTP 或 HTTPS 请求并直接在浏览器中处理响应的方法。
- 用例:它是通用的,可以处理各种请求类型。它受到广泛支持,但与较新的选项相比,它具有更复杂的 API。
- 权衡:与 Fetch 相比,它被认为有些过时,并且 API 不太直观。但是,它仍然用于某些场景,尤其是在处理较旧的代码库时。
获取 API:
- 工作原理:Fetch 是一个用于发出 HTTP 请求的现代 JavaScript API。它提供了比 XMLHttpRequest 更简单、更强大的接口。
- 用例:Fetch 是在现代 Web 开发中发出 HTTP 请求的推荐方法。与 XMLHttpRequest 相比,它支持 promise,并提供更简洁的语法。
- 权衡:它可能在较旧的浏览器中没有得到广泛支持,但随着越来越多的浏览器不断更新,这个问题正在变得不那么重要。
权衡和建议:
- 如果你正在处理一个新式项目,并且不需要支持较旧的浏览器,建议使用 Fetch API,因为它简单且灵活。
- 如果您正在处理较旧的代码库或需要支持较旧的浏览器,您可能仍然会遇到正在使用的 XMLHttpRequest。
- 表单适用于简单的数据提交,但可能缺乏更复杂方案所需的控制和灵活性。
总之,Fetch 通常是现代 Web 开发中发出 HTTP 请求的首选,因为它简单且功能强大,但了解 Forms 和 XMLHttpRequest 可能是有益的,尤其是在处理现有代码或特定用例时。
评论
我不是这个主题的专家,但有不同的用例,和Form
fetch
XMLHttpRequest
fetch
是首选,因为它较新,并允许更现代的接口来执行请求。与表单相比,您可以通过 JavaScript 选择正文/请求内容。XMLHttpRequest
- 当您想要将表单(用户输入)发送到后端服务器时,会使用表单 elemenent。表单元素根据其子元素(子元素)发送数据。发送表单也会导致页面重新加载。在以很少的开销发送数据时,我更喜欢 form 元素,因为它是最终用户将数据发送到服务器的方式。
顶级域名;如果需要新式 api,请使用,如果需要较旧的 api,请使用表单元素,如果要从一系列 html 元素发送数据,请使用表单元素fetch
XMLHttpRequest
评论