AJAX(Web資料互動方式)
阿新 • • 發佈:2022-03-29
AJAX
一. 什麼是 AJAX?
AJAX 全稱:Asynchronous Javascript And XML(非同步的 JavaScript 與 XML)
網頁的區域性刷新技術,網頁不需要重新整理整個頁面來更新部分網頁資料
二. 原始的 JS 建立 AJAX 步驟(☆)
-
建立 AJAX 的核心物件,XMLHttpRequest 根據不同的瀏覽器來建立相對應的Ajax物件
var req; if(window.XMLHttpRequest){ // 非IE req = new XMLHttpRequest(); }else { // IE req = new ActiveXObject("Microsoft.XMLHTTP"); }
-
與伺服器進行連線
// 第一個引數:提交方式 get 或 post // 第二個引數:訪問後臺的 URL // 第三個引數:是否非同步,true 表示非同步,false 表示同步 req.open("post", url, true);
-
傳送請求
req.send(); // get方式:index?id=1 req.send(null); // post方式: 設定編碼方式 req.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); var data = "id=" + 1; req.send(data);
-
指定回撥函式,接收後臺返回值(繫結回撥函式 / 狀態監聽函式)
req.onreadystatechange = function() { // AJAX 狀態是否等於4,狀態為4表示完成了整個請求 if(req.readyState == 4) { // HTTP 狀態等於200 if(req.status == 200) { // 處理返回值 var info = req.responseText; } } }
三. readyState 屬性值(AJAX 的狀態)
狀態值 | 描述 |
---|---|
0 | 表示“未初始化狀態”,已經建立好 XMLHttpRequest 物件,但沒有初始化 |
1 | 表示"載入狀態",XMLHttpRequest 呼叫了 open 函式,但沒有傳送請求 |
2 | 表示"傳送狀態",XMLHttpRequest 呼叫了 send 函式,傳送請求 |
3 | 表示"接收狀態",Servlet 已經接收到 HTTP 請求,但沒有執行完畢 |
4 | 表示"已載入狀態",完全被接收,並且處理完成,前端 AJAX 可以接收返回值 |