Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ajax IE中带有请求的MooTools问题_Ajax_Mootools_Javascript - Fatal编程技术网

Ajax IE中带有请求的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()

我在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();
},
在除IE之外的任何浏览器中,这都可以正常工作,但在IE中,我得到一个警告:this.cards没有在this.prepareQuiz方法完成它的工作之后出现的方法中定义。我在this.prepareQuiz调用之前添加了一个if($defined(this.cards)),如果我每5次左右刷新一次页面,问题就缩小到这一部分。因此,由于某些原因,在某些时候没有设置this.cards变量


为什么会发生这种情况?

我的猜测是,由于调用的异步性质,this.cards没有在需要的时候初始化。至少你的症状表明了这一点。尝试同步通话,看看你是否有同样的问题。

你能在网上发布上述问题的简化示例吗?edl的答案为我解决了。坏主意,这个。更改为onComplete并保持异步。ajax并不意味着同步,它只是自找麻烦…@Dimitar-我同意。我只是想让他使用同步调用来隔离问题。