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);

            }

        });

 

你可能感兴趣的:(XMLhttpREquest)