一、關鍵詞:Javascript,XML,XMLHttpRequest
二、XMLHttpRequest
1、創建 var xhr = new XMLHttpRequest();
2、方法
同步請求 Javascript 代碼會等到服務器響應之後再繼續執行
xhr.open("get" , "example.php" , false); 三個參數分別爲發送到請求的類型、請求的URL、是否異步發送請求
xhr.send("null"); 方法接受一個參數,即要作爲請求主題發送到數據
xhr,abort(); 取消異步請求
在收到響應後,響應的數據會自動填充XHR對象的屬性。
3、相關屬性
responseText:響應主體的內容,非XML類型
responseXML:響應主體的內容,XML類型
status:響應的HTTP狀態
statusText:HTTP狀態的說明
readyState:表示目前的請求/響應的活動階段
readyState值 | 含義 |
0 | 未初始化。尚未調用open()方法 |
1 | 啓動。已經調用open(),尚未調用send() |
2 | 發送。已經調用send(),但尚未收到響應 |
3 | 接收。已經收到部分響應數據 |
4 | 完成。已經接收到全部響應數據,而且已經可以在客戶端使用 |
只要readyState屬性的值改變,就會觸發一次readystatechange事件。注意,必須在調用open()之前指定onreadystatechange事件處理程序
才能確保跨瀏覽器的兼容性。
4、HTTP頭部信息
方法:
setRequestHeader(”MyHeader“,”MyValue“);必須在open()方法調用之後,send()方法調用之前。
getResponseHeader("MyHeader");
三、XMLHttpRequest 2級
1、FormData
var form = document.getElementById("user-info");
xhr.send(new FormData(form));
2、超時設定
xhr.timeout = 1000;
xhr.ontimeout = function(){};
3、進度事件
load事件:響應接收完畢後觸發該事件
progress事件:會在瀏覽器接收新數據期間週期性地觸發
四、跨源資源共享
1、默認情況下,XHR對象只能訪問與包含它的頁面位於同一個域中的資源。CORS(Cross-Origin Resource Sharing)定義了
必須訪問跨源資源時,瀏覽器與服務器如何溝通。基本思想是使用自定義的HTTP頭部讓瀏覽器與服務器進行溝通。
發送請求,加入 Origin頭部;服務器返回時,加入Access-Control-Allow-Origin頭部。
2、圖像Ping
3、JSONP(JSON with padding,參數式JSON)是被包含在函數調用中斷JSONP