0

我们使用一个 XMLHttpRequest 模型对象来测试我们的 ExtJs 4.1 应用程序与 Jasmine。现在,一切都在 Chrome 和 Firefox 中完美运行,但 IE 版本 7 到 9 一如既往地出现问题。

onreadystatechange函数有错误,

if readyStateis 1then SCRIPT575(由于错误而无法继续c00c023f

if readyStateis 2then SCRIPT10(所需数据尚不可用)

看到这个Jsfiddle(搜索“错误”跳转到行)

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


我读过的

我读了几篇这样那样的帖子,但没有一个建议能解决这个问题。


注意

在 Chrome 和 Firefox 中,所有请求都只返回readyState 4,但在 IEreadyState中,值从 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
...

你能指导我如何解决这个问题吗?我没有线索。

4

2 回答 2

1

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

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

于 2012-12-07T10:35:36.127 回答
-1

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

readyState另外,我正在检查if( typeof oXhr.readyState !== 'undefined' ) {}

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

但是,IE8、IE9(Quirks)和 IE 7(Quirks & Standard)失败并出现错误:

SCRIPT16389: Unknown error

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

于 2012-12-10T14:21:27.327 回答