Ajax IE中带有请求的MooTools问题
我在mootools类中有这个类方法:Ajax IE中带有请求的MooTools问题,ajax,mootools,javascript,Ajax,Mootools,Javascript,我在mootools类中有这个类方法: getData : function(){ var r = new Request.JSON({ url : this.container.getAttribute('data-url'), method : 'post', onSuccess : function(j){ this.cards = j; this.prepareQuiz(); }.bind(this) }).send()
getData : function(){
var r = new Request.JSON({
url : this.container.getAttribute('data-url'),
method : 'post',
onSuccess : function(j){
this.cards = j;
this.prepareQuiz();
}.bind(this)
}).send();
},
在除IE之外的任何浏览器中,这都可以正常工作,但在IE中,我得到一个警告:this.cards没有在this.prepareQuiz方法完成它的工作之后出现的方法中定义。我在this.prepareQuiz调用之前添加了一个if($defined(this.cards)),如果我每5次左右刷新一次页面,问题就缩小到这一部分。因此,由于某些原因,在某些时候没有设置this.cards变量
为什么会发生这种情况?我的猜测是,由于调用的异步性质,this.cards没有在需要的时候初始化。至少你的症状表明了这一点。尝试同步通话,看看你是否有同样的问题。你能在网上发布上述问题的简化示例吗?edl的答案为我解决了。坏主意,这个。更改为onComplete并保持异步。ajax并不意味着同步,它只是自找麻烦…@Dimitar-我同意。我只是想让他使用同步调用来隔离问题。