天天看点

INVALID_STATE_ERR: DOM Exception 11

这是在Chrome中提示的错误

IE中提示为:完成该操作所需的数据还不可使用。

出现场景:

在使用jQuery的ajax且网络很慢、设置了timeout的情况下,直接不判断ajax的readyState而直接取responseText将出会错(此时xhr对象可能只有两个属性可用:

responseXML、readyState)。

例如如果使用Ext+jQuery进行的开发中,ext-jQuery-adapter-debug.js中的代码有:

在jquery回调的时候,它调用 createResponse方法,而在createResponse方法中并未进行检测。

jQuery中的ajax并未监听ajax对象的onreadystatechange,而是使用定时器setInterval去检测它的状态readyState或是直接传入timeout将视为请求结束。对使用timeout结束的请求,它调用其abort方法,取消请求。

其中ival类似于系统调用了onreadystatechange方法。

提示,在使用ajax在进行处理结果的时候,需要先判断它的readyState和status两个值。不然容易出错

继续阅读