瀏覽器 --(form submit)--> 服務器 --(執行 PHP/ASP)--> 返回完整 HTML --> 瀏覽器整頁刷新
JS --(XMLHttpRequest/fetch)--> 服務器 --(執行腳本)--> 返回數據(JSON/HTML片段) --> JS 更新 DOM 局部刷新
| 維度 | 傳統表單 | AJAX |
|---|---|---|
| 發起主體 | 瀏覽器原生 | JavaScript API |
| 頁面行為 | 整頁跳轉/刷新 | 無刷新、局部更新 |
| 數據格式 | 通常返回完整 HTML | 常返回 JSON、XML 或片段 |
| 用戶體驗 | 中斷操作流 | 流暢、類桌面應用 |
| 底層協議 | HTTP/HTTPS | HTTP/HTTPS(完全相同) |
「一個是 JS API 發的 HTTP 包,一個是瀏覽器發的 HTTP 包。本質沒啥區別。」
區別僅在於 發起者 與 響應處理方式。服務端無需區分來源,只需根據 Content-Type 或約定格式返回數據即可。
fetch / axios 替代 XMLHttpRequest,配合 async/await 簡化異步邏輯。