XMLHttpRequest Demo

1 一个XMLHttpRequest简单封装DEMO,详细参考http://www.w3school.com.cn/xmldom/dom_http.asp

var ajax = {
            request: null,
            options: {
                method: "",
                url: "",
                asyn: null,
                dataType: "",
                success: function(obj) { },
                error: function(msg) { }
            },
            checkOptions: function(opts) {
                var msg = 0;
                if (!opts.hasOwnProperty("method")) {
                    msg = -1;
                }
                if (!opts.hasOwnProperty("url")) {
                    msg = -1;
                }
                if (!opts.hasOwnProperty("asyn")) {
                    opts.asyn = true;
                }
                if (!opts.hasOwnProperty("dataType")) {
                    opts.dataType = "text";
                }
                if (!opts.hasOwnProperty("success")) {
                    opts.success = function() { };
                }
                if (!opts.hasOwnProperty("error")) {
                    opts.error = function() { };
                }
                return msg;
            },
            create: function(obj) {
                var _this = this;

                if (_this.checkOptions(obj) == -1) {
                    alert("method or url is null");
                    return false;
                }

                if (window.XMLHttpRequest) {
                    this.request = new XMLHttpRequest();
                } else {
                    this.request = new ActiveXObject("Microsoft.XMLHTTP");
                }

                _this.options = obj;

                _this.request.onreadystatechange = function() {
                    if (_this.request.readyState == 4) {
                        if (_this.request.status == 200) {
                            var rd;
                            if (_this.options.dataType == "text") {
                                rd = _this.request.responseText;
                            } else {
                                rd = _this.request.responseXml;
                            }
                            _this.options.success(rd);
                        }
                        else {
                            var msg = _this.request.status;
                            _this.options.error(msg);
                        }
                    }
                }

                _this.request.open(_this.options.method, _this.options.url, _this.options.asyn);
                _this.request.send(null);
            }

        }

        ajax.create({
            method: "GET",
            url:"xml/xml.xml",
            asyn: true,
            dataType:"text",
            success: function(obj) {
                alert(obj);
            },
            error: function(msg) {
                alert(msg);
            }
        });
原文地址:https://www.cnblogs.com/xqhppt/p/2278972.html