mootools的Ajax类在FireFox下同步访问时的一个问题

发现以下的代码:

var myAjax=new Ajax(url, {method:'post',async:false});
myAjax.request(config);

在FireFox下运行后,无法通过myAjax.response.text取得返回的数据。

因为这个调用通过配置信息里的async:false实现了同步方式的调用,怀疑问题出在IE和FF的XMLHttpRequest在同步方式下处理机制有所不同。

经过对Mootools代码的跟踪,发现获取数据成功后的onSuccess方法并没有执行,原来FF下的XMLHttpRequest在同步方式下,不会去调用事件中定义的回调函数,而Mootools中对这种情况没有做任何的处理。

也许Mootools的开发者默认Ajax类的使用都是在异步方式下进行的?

解决办法:

直接访问Ajax类中的XMLHttpRequest对象,通过:
myAjax.transport.responseText
来取得返回的数据。

你可能感兴趣的:(Ajax,IE,firefox,mootools)