Ajax是什么
AJAX = Asynchronous JavaScript and XML
ajax即為js通過異步的方式向服務器發(fā)送請求并獲得響應叔扼,從而局部更新網頁,提高用戶體驗瘦麸。
注意,AJAX只能向同源網址(協(xié)議涨椒、域名斑司、端口都相同)發(fā)出HTTP請求,如果發(fā)出跨源請求姻政,就會報錯呆抑。
具體來說,AJAX包括以下幾個步驟汁展。
- 創(chuàng)建AJAX對象
- 發(fā)出HTTP請求
- 接收服務器傳回的數(shù)據(jù)
- 更新網頁數(shù)據(jù)
寫法
發(fā)送Get請求
var req=new XMLHttpRequest()
req.onreadystatechange=function(){
if (ajax.readyState == 4) {
if ((ajax.status >= 200 && ajax.status < 300)|| (ajax.status == 304) ){
alert(req.responseText)
}
}
}
req.open("get","http://www.example.com/somepage.php?id=" + encodeURIComponent(id))
req.send(null)
// 或者可以這樣寫
req.open("get","http://www.example.com/somepage.php")
req.send('id=' + encodeURIComponent(id))
上面代碼中鹊碍,GET請求的參數(shù),可以作為查詢字符串附加在URL后面食绿,也可以作為send方法的參數(shù)侈咕。
發(fā)送POST請求
var req=new XMLHttpRequest()
req.onreadystatechange=function(){
if (ajax.readyState == 4) {
if ((ajax.status >= 200 && ajax.status < 300)|| (ajax.status == 304) ){
alert(req.responseText)
}
}
}
var data = 'email='
+ encodeURIComponent(email)
+ '&password='
+ encodeURIComponent(password);
ajax.open('POST', 'http://www.example.com/somepage.php', true);
ajax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
ajax.send(data);