1. 程式人生 > 其它 >AJAX(Web資料互動方式)

AJAX(Web資料互動方式)

AJAX

一. 什麼是 AJAX?

AJAX 全稱:Asynchronous Javascript And XML(非同步的 JavaScript 與 XML)

網頁的區域性刷新技術,網頁不需要重新整理整個頁面來更新部分網頁資料

二. 原始的 JS 建立 AJAX 步驟(☆)

  1. 建立 AJAX 的核心物件,XMLHttpRequest 根據不同的瀏覽器來建立相對應的Ajax物件

    var req;
    if(window.XMLHttpRequest){
    	// 非IE
    	req = new XMLHttpRequest();
    }else {
    	// IE
    	req = new ActiveXObject("Microsoft.XMLHTTP");
    }
    
  2. 與伺服器進行連線

    // 第一個引數:提交方式 get 或 post
    // 第二個引數:訪問後臺的 URL
    // 第三個引數:是否非同步,true 表示非同步,false 表示同步
    req.open("post", url, true);
    
  3. 傳送請求

    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);	
    
  4. 指定回撥函式,接收後臺返回值(繫結回撥函式 / 狀態監聽函式)

    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 可以接收返回值