使用XMLHttpRequest 实现http 终止请求和超时

来源:互联网 发布:js获取时间的年月日 编辑:程序博客网 时间:2024/05/21 14:04
getXMLHttpRequest : function () {        return new XMLHttpRequest();    },var httpGet = function (url, cbSucc, cbFail, options) {        var flag = false;        var xhr = cc.loader.getXMLHttpRequest();        xhr.open("GET", url);        var timedOut = false;        var timer = setTimeout(function(){            timedOut = true;            xhr.abort();        }, 3000);        if (cc.sys.isNative)            xhr.setRequestHeader("Accept-Encoding", "gzip,deflate");        var isRaw = false;        if (options && options.responseType) {            isRaw = true;            xhr.responseType = options.responseType;            delete options.responseType;        }        for (var k in options)            if (options.hasOwnProperty(k))                xhr.setRequestHeader(k, options[k]);        xhr.onreadystatechange = function () {            if(timedOut){                return;            }            clearTimeout(timer);            if (xhr.readyState == 4) {                if (xhr.status == 200) {                    if (isRaw)                        cbSucc(new Uint8Array(xhr.response));                    else                        cbSucc(xhr.responseText);                }                else {                    if (!flag) {                        flag = true;                        cbFail(xhr.statusText, xhr.responseText);                    }                }            }        };        xhr.onerror = function () {            if (!flag) {                flag = true;                cbFail(xhr.status, null);            }        };        xhr.send();    };

阅读全文
0 0
原创粉丝点击