第一步:獲得XMLHttpRequest對(duì)象雇卷;
var ajax = new XMLHttpRequest();
第二步:設(shè)置狀態(tài)監(jiān)聽函數(shù)
ajax.onreadystatechange = function(){}
第三步:open一個(gè)請(qǐng)求:
- 其中存哲,第一個(gè)參數(shù)為傳遞方式:get/post;
- 第二個(gè)參數(shù):請(qǐng)求數(shù)據(jù)的url地址;
- 第三個(gè)參數(shù):true/false单芜。true表示異步請(qǐng)求。false表示同步請(qǐng)求
ajax.open("GET","user.json",true);
第四步:send一個(gè)請(qǐng)求∧弊鳎可以發(fā)送對(duì)象和字符串,不需要傳遞數(shù)據(jù)發(fā)送null;
ajax.send(null);
第五步乎芳,在監(jiān)聽函數(shù)中遵蚜,判斷readyState==4 && status == 200表示請(qǐng)求成功;
if (ajax.readyState == 4 && ajax.status == 200) {}
第六步奈惑,使用ajax.responseText吭净、ajax.responseXML接收響應(yīng)數(shù)據(jù),并使用原生js操作DOM進(jìn)行顯示肴甸;
console.log(JSON.parse(ajax.responseText));
完整代碼:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ajax</title>
<script type="text/javascript">
//第一步:獲得XMLHttpRequest對(duì)象
var ajax = new XMLHttpRequest();
//第二步:設(shè)置狀態(tài)監(jiān)聽函數(shù)
ajax.onreadystatechange = function(){
//console.log(ajax.readyState);
//console.log(ajax.status);
//第五步寂殉,在監(jiān)聽函數(shù)中,判斷readyState==4 && status == 200表示請(qǐng)求成功原在;
if (ajax.readyState == 4 && ajax.status == 200) {
//第六步友扰,使用ajax.responseText、ajax.responseXML接收響應(yīng)數(shù)據(jù)庶柿,并使用原生js操作DOM進(jìn)行顯示
//console.log(ajax.responseText);
//console.log(ajax.responseXML);//返回不是XMl,顯示null
console.log(JSON.parse(ajax.responseText));
//console.log(eval("("+ajax.responseText+")"));
}
}
//第三步:open一個(gè)請(qǐng)求
ajax.open("GET","user.json",true); //true表示異步請(qǐng)求村怪。false表示同步請(qǐng)求
//第四步:send一個(gè)請(qǐng)求「÷可以發(fā)送對(duì)象和字符串甚负,不需要傳遞數(shù)據(jù)發(fā)送null;
ajax.send(null);
var str = "alert('666')";
eval(str);
eval("alert('666')");
var jsonU = "{'name':'jack'}";
console.log(eval("("+jsonU+")"));
</script>
</head>
<body>
</body>
</html>