0

我在一个页面上运行多个 ajax 请求,我知道的代码没有任何问题。只是当一个ajax调用直到运行并且用户选择重新加载或刷新时,浏览器将在ff3和chrome 14中返回一个状态错误0(IE6+没有这个问题)。

由于我有很多请求,浏览器会多次提醒,可能会很烦人。我读过这是一个 mozilla / firefox 3 错误,它可能已在更高版本的 ff 中修复,但 chrome 14 显然仍然存在此错误。但我正在构建 ff3 和 chrome 兼容性。有一个错误报告在 这里看到

有谁知道如何抑制仅重新加载/刷新的状态错误?

TIA

我的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
4

0 回答 0