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();
};
使用XMLHttpRequest 实现http 终止请求和超时
最新推荐文章于 2024-08-07 17:59:05 发布