AJAX學習筆記(慕課網)
一、建立XHR物件(XHR物件支援IE6以上)
var reques;
if(window.XMLHttpRequest){
request=new XMLHttpRequest();
}else{
request=new ActiveXObject("Microsoft.XMLHTTP");//支援IE5.6
}
二、HTTP
三、XHR傳送請求
1.open(method,url,async)
method——GET/POST,標明請求方法
url——請求地址
async——請求預設為非同步,設為false時為同步
2.send(string)
string——填寫引數,傳送請求,一般GET方法為空,POST方法不為空,為資訊
e.g.
request.open("POST","creat.php",true);
request.setRequestHeader("Content-type","application/x-www-form-urlencoded");//設定請求頭,告訴伺服器提交的資訊是表單,必須寫在open和send的中間
request.send("name=xxx&sex=男");
四、XHR取得響應
1.獲取響應值
2.在響應成功發回的時候獲得通知——readyState屬性
通過監聽readyState的值獲取伺服器響應所處狀態
var request=new XMLHttpRequest(); request.open("POST","creat.php",true); request.setRequestHeader("Content-type","application/x-www-form-urlencoded"); request.send("name=xxx&sex=男"); request.onreadystatechange=function(){ if(request.readyState===4&&request.status===200){ //做一些事情,request.responseText } }
五、例子
六、JSON
1.json解析和校驗
json解析
var josnobj=JSON.parse(josondata);
alert(jsonobj.staff[0].name);
2.JSON校驗網址
JSONLint
七、jQuery中的ajax
八、跨域
js處於安全方面你的考慮,不允許跨域呼叫其他頁面的物件,如a.com域名下的js無法操作b.com域名下的物件
什麼是跨域
1)主域名不同
2)子域名不同
3)埠號不同
4)協議不同
2.處理跨域的方法
1)代理
2)JSONP,利用script標籤<script></script>去申請另一個域名的資料(只支援GET請求)
3)XHR2