一般來說,大家可能都會習慣用JQuery提供的Ajax方法,但是用原生的js怎麼去實現Ajax方法呢? JQuery提供的Ajax方法: 原生js實現Ajax方法: 註釋: 1,open() 方法需要三個參數: 第一個參數定義發送請求所使用的方法(GET 還是 POST)。與 POST 相比,GET ...
一般來說,大家可能都會習慣用JQuery提供的Ajax方法,但是用原生的js怎麼去實現Ajax方法呢?
JQuery提供的Ajax方法:
1 $.ajax({ 2 url: , 3 type: '', 4 dataType: '', 5 data: { 6 7 }, 8 success: function(){ 9 10 }, 11 error: function(){ 12 13 } 14 })
原生js實現Ajax方法:
1 var Ajax={ 2 get: function (url,fn){ 3 var obj=new XMLHttpRequest(); // XMLHttpRequest對象用於在後臺與伺服器交換數據 4 obj.open('GET',url,true); 5 obj.onreadystatechange=function(){ 6 if (obj.readyState == 4 && obj.status == 200 || obj.status == 304) { // readyState==4說明請求已完成 7 fn.call(this, obj.responseText); //從伺服器獲得數據 8 } 9 }; 10 obj.send(null); 11 }, 12 post: function (url, data, fn) { 13 var obj = new XMLHttpRequest(); 14 obj.open("POST", url, true); 15 obj.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); // 發送信息至伺服器時內容編碼類型 16 obj.onreadystatechange = function () { 17 if (obj.readyState == 4 && (obj.status == 200 || obj.status == 304)) { // 304未修改 18 fn.call(this, obj.responseText); 19 } 20 }; 21 obj.send(data); 22 } 23 }
註釋:
1,open() 方法需要三個參數:
第一個參數定義發送請求所使用的方法(GET 還是 POST)。與 POST 相比,GET 更簡單也更快,並且在大部分情況下都能用。然而,在以下情況中,請使用 POST 請求:
- 無法使用緩存文件(更新伺服器上的文件或資料庫)
- 向伺服器發送大量數據(POST 沒有數據量限制)
- 發送包含未知字元的用戶輸入時,POST 比 GET 更穩定也更可靠
第二個參數規定伺服器端腳本的 URL(該文件可以是任何類型的文件,比如 .txt 和 .xml,或者伺服器腳本文件,比如 .asp 和 .php (在傳迴響應之前,能夠在伺服器上執行任務))。
第三個參數規定應當對請求進行非同步地處理(true(非同步)或 false(同步))。
2,send() 方法可將請求送往伺服器。
3,onreadystatechange 屬性存有處理伺服器響應的函數。
4,readyState 屬性存有伺服器響應的狀態信息。每當 readyState 改變時,onreadystatechange 函數就會被執行。
通過學習對XMLHttpRequest對象又熟悉了一些,哈哈