简单封装一个ajax插件

Posted 花生奶糖

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单封装一个ajax插件相关的知识,希望对你有一定的参考价值。

function ajax(options) {
    options = options || {};
    options.type = options.type || get;
    options.type = options.data || {};
    options.dataType = options.dataType || text;


    //IE6以下无法使用
    let xhr = new XMLHttpRequest();
    // 数据修改
    let arr = [];
    for (let name in options.data) {
        arr.push(`${name}=${options.data[name]}`)
    }
    let strData = arr.join(&);
    if (options.type == post) {
        xhr.open(post, options.url, true);
        xhr.setRequestHeader(content-type, application/x-www-form-urlencoded)
        xhr.send(strData);
    } else {
        xhr.open(get, options.url + ? + strData, true);
        xhr.send();
    }
    xhr.onreadystatechange = function () {
        if (xhr.readyState == 4) {
            if (xhr.status >= 200 && xhr.status < 300 || xhr.status == 304) {
                let data = xhr.responseText;
                switch (options.dataType) {
                    case json:
                        if (window.JSON && JSON.parse) {
                            data = JSON.parse(data);
                        } else {
                            data = eval(( + str + ))
                        }
                        break;
                    case xml:
                        data = xhr.responseXML;
                        break
                }
                options.success && options.success(data);
            } else {
                options.error && options.error()
            }
        }
    }
}

 

以上是关于简单封装一个ajax插件的主要内容,如果未能解决你的问题,请参考以下文章

原生JS封装AJAX

[XJBG系列] 封装一下jquery.ajax当插件吧,为了少些几行代码

vue2.0封装自己的ajax模块

template.js插件和ajax一起使用的例子

VSCode插件开发全攻略代码片段设置自定义欢迎页

使用原生ajax及其简单封装