ajax

  1. 實(shí)例化XMLHttpRequest對(duì)象。
var xhr=null;
 try {
       xhr=new XMLHttpRequest();
  }catch (e){
        //ie6及其以下的版本
       xhr=new ActiveXObject('Microsoft.XMLHTTP');
       }
  1. 在使用xhr對(duì)象時(shí),要使用的第一個(gè)方法是open().
xhr.open('get','1.example.txt',true);

這里接收三個(gè)參數(shù),要發(fā)送請(qǐng)求的類型(get,post),請(qǐng)求的URL和是否異步(true:異步,false:同步)。
注意:這里并不會(huì)真正發(fā)送請(qǐng)求,而是啟動(dòng)一個(gè)請(qǐng)求以備發(fā)送。

  1. 發(fā)送請(qǐng)求,調(diào)用send()方法。
xhr.send(null)

GET請(qǐng)求沒有主體,所以應(yīng)該傳遞null或者省略這個(gè)參數(shù)。POST請(qǐng)求通常擁有主體,同時(shí)它應(yīng)該匹配使用setRequestHeader()指定的“Content-Type”頭。

  1. get請(qǐng)求。
    get請(qǐng)求通常用于向服務(wù)器查詢某些信息,必要時(shí),可以將查詢字符串參數(shù)追加到URL的末尾,但參數(shù)必須經(jīng)過正確的編碼。
function addURLParam(url,data) {
        url +='?';
        var arr = [];
        for(var name in data) {
            //   encodeURIComponent() :用于對(duì) URI 中的某一部分進(jìn)行編碼
            arr.push(encodeURIComponent(name) + '=' + encodeURIComponent(data[name]));
        }
        return url+arr.join('&');
    }

這里的data格式是json。
2.post請(qǐng)求。
對(duì)于請(qǐng)求,通常像服務(wù)器發(fā)送應(yīng)該被保存的數(shù)據(jù),應(yīng)該把數(shù)據(jù)作為請(qǐng)求的主題提交,它不是以地址形式傳參,而是在send()中傳參。

xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8'); 
      // 傳輸數(shù)據(jù)  
      xhr.send(data);  

4.監(jiān)聽事件,只要 readyState 的值變化,就會(huì)調(diào)用 readystatechange 事件.。

xhr.onreadystatechange = function() {   
              //readyState值為4,說明所有數(shù)據(jù)已就緒 
        if ( xhr.readyState == 4 ) {
            if ( xhr.status == 200 && xhr.status<300 ) {
                alert(xhr.responseText)
            } else {
                alert('出錯(cuò)了,Err:' + xhr.status);
            }
        }   
    }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • ajax作為前端開發(fā)必需的基礎(chǔ)能力之一,你可能會(huì)使用它,但并不一定懂得其原理,以及更深入的服務(wù)器通信相關(guān)的知識(shí)。在...
    蕭玄辭閱讀 885評(píng)論 0 0
  • AJAX 原生js操作ajax 1.創(chuàng)建XMLHttpRequest對(duì)象 var xhr = new XMLHtt...
    碧玉含香閱讀 3,562評(píng)論 0 7
  • 大家好,我是IT修真院深圳分院第3期的學(xué)員,一枚正直純潔善良的前端程序員,今天給大家分享一下,修真院官網(wǎng)前端工程師...
    大大頭大閱讀 8,086評(píng)論 1 72
  • 沒有學(xué)Ajax之前,就在想這到底是一門什么技術(shù),問自己什么是Ajax?Ajax有哪些重點(diǎn)概念?Ajax如何運(yùn)用?聽...
    張延偉閱讀 2,109評(píng)論 0 8
  • 1. 緒論: AJAX技術(shù)的核心為XHR(XMLHttpRequest)對(duì)象AJAX功能:向服務(wù)器請(qǐng)求額外的數(shù)據(jù)而...
    xiaoguo16閱讀 281評(píng)論 0 1

友情鏈接更多精彩內(nèi)容