天天看点

Ajax请求回调函数checkComplete调用一次执行多次

今天在写项目的时候,Ajax请求回调函数checkComplete调用一次执行多次导致数据渲染了好几遍。然后debug找了好久问题,代码如下

req = new XMLHttpRequest();
		if (req) {
			//采用POST方式,异步传输
			req.open("post", url, true);
			//POST方式,必须加入如下头信息设定
			req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			req.onreadystatechange = checkComplete;
			var data = "&id=" + studio; 
			req.send(data);
		}
           

后来发现onreadystatechange是请求状态改变就会调用checkComplete()方法,然后将代码改成下面这样就好了。

req.onreadystatechange = function () {
                    if (req.status === 200 && req.readyState === 4) {
                        checkComplete()
                    }
                };
           

继续阅读