原生ajax寫法


轉自:https://blog.csdn.net/qq_empire/article/details/81737394

相關鏈接:https://blog.csdn.net/qq_30101879/article/details/77916622

原生ajax使用:

   function ajax(url){
        var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : ActiveXObject("microsoft.XMLHttp")
        xhr.open("get",url,true);
        xhr.send();
        xhr.onreadysattechange = () =>{
            if(xhr.readystate == 4){
                if(xhr.status == 200){
                    var data = xhr.responseTEXT;
                    return data;
                }
            }
        }    
    }
 

get方式

   function btnClick() {
        //創建核心對象
        xhr= null;
        if (window.XMLHttpRequest) {// code for Firefox, Opera, IE7, etc.
            xhr = new XMLHttpRequest();
        } else if (window.ActiveXObject) {// code for IE6, IE5
            xhr = new ActiveXObject("Microsoft.XMLHTTP");
        }
        //編寫回調函數
        xhr.onreadystatechange = function() {
            if (xhr.readyState == 4 && xhr.status == 200) {
                alert(xhr.responseText)
            }
        }
        //open設置請求方式和請求路徑
        xhr.open("get", "/Ajax/ajax2?username=張三");//一個servlet,后面還可以寫是否同步
        //send 發送
        xhr.send();
    }

 

post

    function btnClick() {
        //創建核心對象
        xhr = null;
        if (window.XMLHttpRequest) {// code for Firefox, Opera, IE7, etc.
            xhr = new XMLHttpRequest();
        } else if (window.ActiveXObject) {// code for IE6, IE5
            xhr = new ActiveXObject("Microsoft.XMLHTTP");
        }
        //編寫回調函數
        xhr.onreadystatechange = function() {
            /*     alert(xmlhttp.readyState); */
            if (xhr.readyState == 4 && xhr.status == 200) {
                alert(xhr.responseText)
            }
            /* alert(123); */
        }
        //open設置請求方式和請求路徑
        xhr.open("post", "/Ajax/ajax2");//一個servlet,后面還可以寫是否同步
        //設置請求頭
        xhr.setRequestHeader("content-type", "application/x-www-form-urlencoded")
        //send 發送
        xhr.send("username=張三");
    }

 封裝

function ajax_method(url,data,method,success) {
    // 異步對象
    var ajax = new XMLHttpRequest();

    // get 跟post  需要分別寫不同的代碼
    if (method=='get') {
        // get請求
        if (data) {
            // 如果有值
            url+='?';
            url+=data;
        }else{

        }
        // 設置 方法 以及 url
        ajax.open(method,url);

        // send即可
        ajax.send();
    }else{
        // post請求
        // post請求 url 是不需要改變
        ajax.open(method,url);

        // 需要設置請求報文
        ajax.setRequestHeader("Content-type","application/x-www-form-urlencoded");

        // 判斷data send發送數據
        if (data) {
            // 如果有值 從send發送
            ajax.send(data);
        }else{
            // 木有值 直接發送即可
            ajax.send();
        }
    }

    // 注冊事件
    ajax.onreadystatechange = function () {
        // 在事件中 獲取數據 並修改界面顯示
        if (ajax.readyState==4&&ajax.status==200) {
            // console.log(ajax.responseText);

            // 將 數據 讓 外面可以使用
            // return ajax.responseText;

            // 當 onreadystatechange 調用時 說明 數據回來了
            // ajax.responseText;

            // 如果說 外面可以傳入一個 function 作為參數 success
            success(ajax.responseText);
        }
    }

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM