Ajax的技術核心是XMLHttpRequest
第一步:var xhr=new XMLHttpRequest();
第二步:xhr.open(),它接受三個參數:要發送的請求類型("get"、“post”)、請求的URL和表示是否異步發送請求的布爾值,如xhr.open("get","example.php",false); ?其中URL是相對于執行代碼的當前頁面(當然也可以使用絕對路徑);二調用open()的方法并不會真正發送請求,而只是啟動一個請求以備發送;false代表同步請求
第三步:xhr.send(null),send()方法可以接收一個參數,即作為請求主體發送的數據,如果不需要通過請求主體發送數據,則必須傳入null
大多數是發送異步請求,才能讓javascript繼續執行而不必等待響應,調用open之前制定onreadystatechange事件處理程序才能確保跨瀏覽器兼容性。
例如:
var xhr=new XMLHttpRequest();
xhr.onreadystatechange=function(){
if(xhr.readyState==4){
if((xhr.status>=200 && xhr.status<300 ) || xhr.status==304){
alert(xhr.responseText);
}else{
alert("Request was unsucessful:"+xhr.status);
}}};
xhr.open(“get”,“example.txt”,true);
xhr.send(null);
其中readyState取值(0-4)0:未初始化,尚未調用open()方法。1:啟動,已經調用open()方法,但尚未調用send()方法;2:發送 已經調用send()方法,但尚未收到響應。3:接收,已經接收到部分響應數據。4:完成已經接收到全部響應數據,而且已經可以在客戶端使用了。
另外接收到響應之前可以調用abort()方法取消異步請求。xhr.abort();調用之后xhr會停止觸發事件對象,而且也不再允許訪問任何和響應有關的屬性。
http頭部信息
cookie :當前頁面頁面設置的任何cookie