zoukankan      html  css  js  c++  java
  • 回忆Ajax ๑乛◡乛๑

    东西越多,记不完,也记不住,笔记是最好的记忆了。

    回顾以前的ajax的写法,简单封装一个ajax。

    //data = {
        //    url: "url",
        //    method: "post/get",
        //    async: "true/false",
        //    params: { key: value },
        //    success: fn,
        //    error: fn
        //};
        function Ajax(data) {
            //默认参数
            var _data = {
                method: "post",
                async: "true",
                params: '',
                success: function (respose) { },
                error: function (respose) { }
            }
            //重写默认参数
            for (var key in data) {
                _data[key] = data[key];
            }
    
            //处理数据
            if (_data.params) {
                var paramsArr = [];
                for (var pkey in _data.params) {
                    paramsArr.push(pkey + '=' + _data.params[pkey]);
                }
                if (_data.method.toUpperCase() == 'GET') {
                    _data.url += (_data.url.indexOf('?') > 0 ? '' : '?');
                    _data.url += paramsArr.join('&') + new Date().getTime();//避免cache;
                } else {
                    _data.params = paramsArr.join('&');
                }
            }
    
            //异步对象
            var xhr = null;
            if (window.XMLHttpRequest) {
                xhr = new XMLHttpRequest();
            } else if (window.ActiveXObject) { //IE
                xhr = new ActiveXObject("Microsoft.XMLHTTP");
            }
            if (xhr == null) {
                alert("xhr对象实例化失败!")
                return false;
            }
    
            //准备异步操作
            xhr.open(_data.method, _data.url, _data.async);
            //设置回调函数
            xhr.onreadystatechange = function () {
                console.log(this.readyState + " " + this.status);
                if (this.readyState == 4) {
                    if (this.status == 200) {
                        _data.success(this.responseText);
                    } else {
                        _data.error(this.responseText);
                    }
                }
            };
    
            if (_data.method.toUpperCase() === 'GET') {
                xhr.send(null);
            } else {
                //xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
                xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
                xhr.send(_data.params);
            }
        }
  • 相关阅读:
    Python函数
    linux—shell 脚本编程
    python 内建函数
    列表解析式(List Comprehension)
    python标准库(datetime)
    python字典(dict)
    常用数据结构
    C 2010年笔试题
    C 2012年笔试题(保)
    C 2012年笔试题
  • 原文地址:https://www.cnblogs.com/fnz0/p/6746718.html
Copyright © 2011-2022 走看看