仅在IE中的XMLHttpRequest错误

时间:2012-12-06 16:45:05

标签: javascript xmlhttprequest

我们使用XMLHttpRequest模拟对象来使用Jasmine测试我们的ExtJs 4.1应用程序。现在,Everythings在Chrome和Firefox中完美运行,但IE 7到9版本一如既往地制造麻烦。

onreadystatechange功能

时出错

如果readyState1,则为SCRIPT575(由于错误c00c023f而无法继续)

如果readyState2,那么SCRIPT10(所需数据尚不可用)

请参阅此Jsfiddle(搜索“错误”以跳转到该行)

此外,还有一个错误TypeError: Object expected


我读过的内容

我阅读了一些帖子,例如thisthat,但没有一项建议修正过。


注意

在Chrome& Firefox所有请求仅返回readyState 4,但在IE readyState中,值从1到4(?)重复。

Chrome & FF
readyState 4 => OK
readyState 4 => OK
readyState 4 => OK
readyState 4 => OK
readyState 4 => OK
...

IE:
readyState 1 => error
readyState 2 => error
readyState 3 => OK
readyState 4 => OK
readyState 1 => error
...

你能指导我如何解决这个问题吗?我不知道。

2 个答案:

答案 0 :(得分:1)

在读取responseXML / responseText属性之前检查readyState值。如果readyState值为4,则可以安全地访问responseXML / responseText

(XMLHttpRequest的原始实现和后来的规范要求在对象完成I / O操作之前在访问数据时抛出异常)

答案 1 :(得分:-1)

有一个名为response的属性应为responseText

此外,我正在使用readyState

检查if( typeof oXhr.readyState !== 'undefined' ) {}

现在我的代码适用于IE8,IE9(标准版)。

然而,IE8,IE9(Quirks)和IE 7(Quirks& Standard)失败并出现错误:

SCRIPT16389: Unknown error

我会尝试修复,但这个问题已经完成。