ajax的GET提交方式的原生代碼:
var xhr = null; if(window.XMLHttpRequest){ xhr = new XMLHttpRequest(); }else if(window.ActiveXObject){ xhr = new ActiveXObject() }else{ xhr = null; } if(xhr){ xhr.open('GET','../data/data.json'); xhr.onreadystatechange = function(){ if(xhr.readyState == 4 && xhr.status == 200){ alert(eval("("+xhr.responseText+")").result); xhr = null; } } xhr.send(null); }
XMLHttpRequest() 這個對象可以在不重新加載頁面的情況下從后台獲取數據,支持的瀏覽器有IE7+、Firefox、Chrome、Safari 以及 Opera
ActiveXObject(“Microsoft.XMLHTTP”) 這個對象是針對老式ie瀏覽器的
onreadystatechange事件 當readyState的值發生改變時觸發此事件
open() 這個方法有三個參數,open("提交方式 get/post","資源的地址",異步或者同步 true/false);
readyState 准備狀態
0 (未初始化)對象已建立,但是尚未初始化(尚未調用open方法)
1(初始化)已調用send()方法,正在發送請求
2(發送數據)send()方法調用完成,但是當前的狀態及http頭未知
3(數據傳送中)已接收部分數據,因為相應及http頭不全,這時通過responseText獲取部分數據會出現錯誤
4(完成)數據接收完成,此時可以通過responseText獲取完整的數據
status 請求狀態
200(成功)
404(沒有發現文件)
500(服務器內部錯誤)
responseText 請求成功后獲取數據