表单提交和 Ajax 都能把数据送到服务器,差别在「页还在不在」以及「谁来处理响应」。
页面会不会刷新
Ajax 在后台发请求、收响应,当前页还在。表单提交等于放弃当前文档,再要一份新页面——即便 action 指回自己,浏览器也会整页刷新。
请求是谁发起的
Ajax 用 JavaScript 另外建一个 HTTP 请求(现在一般是 fetch 或 XMLHttpRequest)。表单是浏览器自己的导航:组好表单字段,按 method / action 走。
没有 JavaScript 行不行
Ajax 依赖脚本,禁用 JS 就发不出去。表单是浏览器内置能力,没 JS 也能提交。要兜底的页面,表单仍有意义;单页应用则几乎全是 Ajax。
数据谁来处理
Ajax 从发到收都要代码处理:拼 body、设 header、解析 JSON、改 DOM。表单按控件的 name 自动组包,响应则是一整张新 HTML,不用你在前端拆字段。
可以记:要无刷新、要自己决定成功后干什么,用 Ajax;要最朴素的「填完点提交换一页」,用 form。