使用HTML表单元素和XMLHTTPRequest进行POST后有什么区别?
为什么表单允许重定向到另一个网页,但显然XMLHTTPRequest不能?
如果我正在发出POST请求,我应该能够制定具有相同属性的请求并期望相同的行为。
答案 0 :(得分:4)
使用HTML表单元素进行POST后有什么区别 使用XMLHTTPRequest?
XMLHttpRequest允许执行异步操作,不会阻止客户端的UI。使用HTML表单时,在执行操作时会阻止客户端。
另外(正如你所指出的),HTML表单提交会导致页面重新加载到指定的URL,而XHR则不会 - 它只会导致返回数据。返回的数据可能只是页面内容的一部分,因此XHR不会导致整页重新加载。它允许我们动态更新页面的一部分。
为什么表单允许重定向到另一个网页,但显然是一个 XMLHTTPRequest不能?
XHR可以为其配置“成功”回调函数。操作成功完成后,回调函数可以执行任何操作,包括重定向。
如果我正在发出POST请求,我应该能够制定请求 具有相同的属性并期望相同的行为。
您是否应该将HTML请求配置为与XHR请求相同?如果是这样,那么不,事实并非如此。可以将XHR请求配置为非常精细的级别(用户名和密码,数据类型,缓存,成功回调,故障回调等)。这(以及XHR的异步性质)是XHR受欢迎的原因。
答案 1 :(得分:4)
我认为你应该介绍一下简短的历史和演变。
回到过去,当HTML HTTP很简单时,人们习惯发布表单,但它有一些问题吗?
好的,但如果用户没有输入正确的表格值怎么办?网络使用速度慢,所以英雄JavaScript
现在聪明人带着XMLHTTPRequest/AJAX为什么要刷新页面原因?
有了更好的浏览器和服务器,这在SPA(单页应用程序)中得到了发展,还有更多。
导入一个是使用一些代码,
甚至XHR也可以重定向到其他页面或重新加载页面窗口.location ='' 并且还可以防止FORM重定向ex e.preventDefault()
检查AJAX相关信息,它可以帮助您了解部分原因以及为什么它如此有趣。
希望有所帮助
答案 2 :(得分:1)
XmlHttpRequest不会重新加载页面,HTML表单会这样做。这是主要的区别