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, время: 11:26. |