Ajax onClick 事件第一次获取错误的结果,但第二次获取正确的结果


ajax onclick event fetches wrong result first time but correct on second time

问题是,当我单击按钮获取下一个问题(即第二个问题)时,第一个问题现在加载onload函数,但它再次获取第一个问题,之后,当我单击下一个时,它会获取第二个问题。现在,如果我想从另一个主题获取问题,假设数学部分,我将变量的值设置为 15,当我单击数学时,它首先递增问题,然后无论我单击什么按钮,它仍然跳到问题 15。

var question = 1;
function ajaxFunction (_direction) {
    var ajaxRequest; 
    try {
        ajaxRequest = new XMLHttpRequest();
    } catch (e) {      
        try {
            ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {
                alert("Your browser broke!");
                return false;
            }
        }
   }
   ajaxRequest.onreadystatechange = function () {
       if (ajaxRequest.readyState == 4 && ajaxRequest.status== 200) {
           var ajaxDisplay = document.getElementById('ajaxDiv');
           if (_direction=='') {
              question=1;
           } else if (_direction=='next') {
              question++;
           } else if (_direction>=1 && _direction <=90) {
              question = _direction;
           }
       }
       ajaxDisplay.innerHTML = ajaxRequest.responseText;
   }
   ajaxRequest.open("GET", "ajax-example.php?q="+question, true);
   ajaxRequest.send(null); 
}

好吧,我没有放弃并自己得到了解决方案,我正在回答这个问题,以便如果其他人有同样的问题。我刚刚从 onreadystatechange 中删除了 if else 条件并将其放在函数上方,它对我有用。

我遇到了类似的问题,并通过将 HTTP 请求从异步器设置为同步器来解决它(请参阅使用您的 http 请求有时间滞后逐步自动路由)。

您是以同样的方式解决问题还是找到了更好的问题?

最好的问候,莱因哈德