• 封装ajax


      var sendData = function(options) {
            var mat = options.url.match(/https?://([^/]+)/);
            if (mat && location.host != mat[0]) {
                jsonp(options);
            } else {
                ajax(options);
            }
        }
    
        var jsonp = function(options) {
            options = options || {};
            if (!options.url) {
                throw new Error("Parameter is not valid");
            }
            var callbackName = ('jsonp_' + Math.random()).replace(".", "");
            var oHead = document.getElementsByTagName('head')[0];       
            var oS = document.createElement('script');
            oHead.appendChild(oS);
            window[callbackName] = function(json) {
                oHead.removeChild(oS);
                clearTimeout(oS.timer);
                window[callbackName] = null;
                options.success && options.success(json);
            };
            if (options.url.indexOf('?') == -1) {
                oS.src = options.url + '?callback=' + callbackName;
            } else {
                oS.src = options.url + '&callback=' + callbackName;
            }
            if (options.time) {
                oS.timer = setTimeout(function() {
                    window[callbackName] = null;
                    oHead.removeChild(oS);
                    options.fail && options.fail({
                        message: "timeOut"
                    });
                }, time);
            }
        }
        var ajax = function(options) {
            options = options || {};
            options.type = (options.type || "GET").toUpperCase();
            options.dataType = options.dataType || "json";
            var params = formatParams(options.data);
            if (window.XMLHttpRequest) {
                var xhr = new XMLHttpRequest();
            } else {
                var xhr = new ActiveXObject('Microsoft.XMLHTTP');
            }
            xhr.onreadystatechange = function() {
                if (xhr.readyState == 4) {
                    var status = xhr.status;
                    if (status >= 200 && status < 300) {
                        options.success && options.success(xhr.responseText, xhr.responseXML);
                    } else {
                        options.fail && options.fail(status);
                    }
                }
            }
            if (options.type == "GET") {
                xhr.open("GET", options.url + "?" + params, true);
                xhr.send(null);
            } else if (options.type == "POST") {
                xhr.open("POST", options.url, true);
                xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
                xhr.send(params);
            }
        }
  • 相关阅读:
    本学期3个sprint的团队贡献分
    sprint3个人总结
    12.17第九天
    阶段二总结
    sprint 1 总结
    冲刺一
    课程设计团队信息
    学习进度表
    Sprint3总结
    Res_Orders_02
  • 原文地址:https://www.cnblogs.com/xiaotaiyang/p/5577133.html
Copyright © 2020-2023  润新知