Get запрос сбрасываеться статус ответа(решено)
Добрый день, давным давно сделал функцию для получения параметров из GET запроса, и она работала все это время, но тут перестали отображаться параметры, начал разбираться нашел, что запрос приходит (во вкладке сеть все ок(статус 200) приходит) а calback не вызывается, добавил:
console.log("http2.readyState=",http2.readyState);
console.log("http2.status=",http2.status);
И результат такой получился: Код:
http2.readyState= 2 статус пакета пакета =0 ? Во вкладке сеть пишется статус 200 Почему статус может сбрасываться ? Заголовок ответа такой: Цитата:
var http2 = createRequestObject();
function GetSettingTimeout(link,ModeFuncCall,CallbackTrue,CallbackFalse,CallbackWait) {
(function _f() {
if( http2 ) {
//---------------------------------------------
var uriEncode = encodeURI(link).replace(/%20/g,'!').replace(/'/g,'~').replace(/%22/g,'"').replace(/%5B/g, '[').replace(/%5D/g, ']');
////console.log(uriEncode);
// if(WEBPACK_MODE){
// }else{
//uriEncode="http://192.168.0.4/"+uriEncode;
//}
XMLHttpRequest_Start=1;
http2.open('GET', uriEncode, true);
//---------------------------------------------
http2.setTimeout(function() {}, 10); =3000;
clearTimeout(TimerID||0); //Если запускаеться другая функция то переназначаем для него таймаут
//---------------------------------------------
http2.onreadystatechange = function () {
console.log("http2.readyState=",http2.readyState);
console.log("http2.status=",http2.status);
if (http2.readyState == 4&&http2.status == 200) {
if (CallbackTrue && typeof(CallbackTrue) === "function") {
clearTimeout(TimerID||0);
CallbackTrue.call(http2.responseText);
CallbackWait=0; //Сбросил CallbackWait в ноль что бы при следующем GetSettingTimeout с другими параметрами не запускался предыдуший CallbackWait
}
//CallbackTrue.call(http2.responseText);
//ConnectSuccessful();
if(ModeFuncCall==CYCLIC){
TimerID = setTimeout(_f, 1000);
}
}else{
if(typeof(CallbackWait) === "function"){
CallbackWait();
}
}
};
//---------------------------------------------
http2.ontimeout = function() {
//Disconnect();
TimerID = setTimeout(_f, 1500);
if (CallbackFalse && typeof(CallbackFalse) === "function") {
CallbackFalse.call(http2.responseText);
}
TimerID = setTimeout(_f, 3000);
};
//---------------------------------------------
http2.abort= function() {
if(StatusAbort==ClearAbbort){
//Disconnect();
StatusAbort=ClearAbbort;
TimerID = setTimeout(_f, 1000);
}
};
//---------------------------------------------
http2.send(null);
}else{
TimerID = setTimeout(_f, 1000);
}
})();
}
function createRequestObject()
{
try { return new XMLHttpRequest() }
catch(e)
{
try { return new ActiveXObject('Msxml2.XMLHTTP') }
catch(e)
{
try { return new ActiveXObject('Microsoft.XMLHTTP') }
catch(e) { return null; }
}
}
}
|
Оказалось что со сервера не правильно выдается размер в шапке
в 10 раз больше чем реальные данные. Content-Length: 00000002440 |
| Часовой пояс GMT +3, время: 01:18. |