外部声明的变量:
var total=0;
on success of AJAX{
total++;
alert(total);// gives value
}
alert(total)// gives zero value
在这里,我将总值设为 0。
外部声明的变量:
var total=0;
on success of AJAX{
total++;
alert(total);// gives value
}
alert(total)// gives zero value
在这里,我将总值设为 0。
您的ajax请求可能是异步的。这意味着您alert发生在响应返回之前。
任何依赖于响应的代码(比如你的警报)都需要放在你的onreadystatechange处理程序中。
它不清楚实际上是什么问题,但这听起来像是典型的异步混淆。AXMLHttpRequest默认情况下,运行 async 并在遇到事件时触发其回调(例如,readyState 4)。
因此,您的alert()语句很可能在您的任何 ajax 处理程序触发之前遇到。
因此,简单的解决方案是将其移动alert()到您.onreadystatechange各自的.onload事件处理程序中,移动到处理success.
最糟糕的解决方案(即使没有人会推荐)是将您的设置XMLHttpRequest为syncronous。这意味着,在请求运行期间,您的浏览器及其 UI 线程被锁定,直到请求完成。