简单的Ajax封装

function ajax(opt) {
        let defult_obj = {
            url: '',
            method: 'GET',
            async: true,
            data: {
                pageSize: 5,
                pageNum: 0,
            },
            success: null,
        }
        let newOpt = Object.assign(defult_obj, opt);
       let xhr = XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');
        xhr.onreadystatechange = function () {
            if (xhr.readyState === 4 && xhr.status === 200) {
              console.log(xhr.responseText)
              
            }
        }
        let search = '';
        if (newOpt.method.toUpperCase() === "GET") {
            search = '?' + Object.keys(newOpt.data).map(function (k) {
                return k + '=' + newOpt.data[k];
            }).join('&');
            console.log(search)
        }
        xhr.open(newOpt.method, newOpt.url + search, newOpt.async);
        let data = null;
        if (newOpt.method.toUpperCase() === "POST") {
            xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
            data = JSON.stringify(newOpt.data)
        }
        xhr.send(data);

    }
    ajax({
        url: 'http://192.168.1.119:3000/api/data',
        method: 'POST',
        async: true,
        data: {
            pageSize: 10,
            pageNum: 0,
        },
        success: function (data) {

        }
    })

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容