ajax xhr.status = 0 ошибок после перезагрузки / обновления, как это предотвратить? - PullRequest
0 голосов
/ 11 октября 2011

Я выполняю несколько запросов ajax на странице, нет ничего плохого в кодах, о которых я знаю. Просто, когда до начала выполнения вызова ajax и пользователь выбирает перезагрузку или обновление, браузер возвращает ошибку состояния 0 как в ff3, так и в chrome 14 (IE6 + не имеет этой проблемы).

Поскольку у меня много запросов, браузер будет предупреждать несколько раз и может быть очень раздражающим. Я читал, что это ошибка mozilla / firefox 3, и она могла быть исправлена ​​в более поздних версиях ff, но в chrome 14 эта ошибка все еще сохраняется. Но я строю для совместимости с ff3 и chrome. Есть сообщение об ошибке Здесь

Кто-нибудь знает, как подавить ошибку состояния только для перезагрузки / обновления?

ТИА

мои коды ajax

function createXHR() {
    var xhrObj;
    if (window.XMLHttpRequest) {
        // branch for native XMLHttpRequest object - Mozilla, IE7
        try {
            xhrObj = new XMLHttpRequest();
        } 
        catch (e) {
            alert("Your browser does not support this website!");
            xhrObj = null;
        }//close catche
    }  //close if
    else if (window.ActiveXObject) {
        // branch for IE/Windows ActiveX version
        try {
            xhrObj = new ActiveXObject("Msxml2.XMLHTTP");
        } //try
        catch(e) {
            try{
                xhrObj = new ActiveXObject("Microsoft.XMLHTTP");
            }//inner try
            catch(e) {
                alert("Your browser does not support this website!");
                xhrObj = null;
            } //inner catch
        }//catch
    } //else if

    return xhrObj;
}//eof createXHR

function search(var1, var2) {
    var xhrObj = createXHR();
    if (xhrObj) {
        try {
    var queryString = "whatever";   
        xhrObj.open("GET", "url.php"+queryString,true);             
        xhrObj.onreadystatechange = function (){callback(xhrObj,var1,var2);};
        xhrObj.send(null);
        } catch (e) {
            alert ('search error');
            return;
        }
    } else {
       alert("search error has occured, please refresh and try again");
       return; //do plan B. You do have a plan B, no?
    }
}//tld close

function callback(xhr,var1, var2) { 
    if (xhr.readyState == 4) {
        try { 
            if (xhr.status == 200) 
                {
        var s = xhr.responseText;           
                //dosomething
                }
            else {
                alert('Status error '+xhr.status);
        return; 
        }
        } 
        catch (e) {
            alert("live Server Error "); 
        return;
        //this will alert if a call is issued to a nonexistent function / variable
        }
    }
}//callback close
...