为什么在调用open throw之前设置XMLHttpRequest responseType?

Lex*_*x R 17 javascript ajax w3c specifications xmlhttprequest

new XMLHttpRequest().responseType = "json"在控制台中运行会在Firefox 26和IE11中引发"InvalidStateError"异常,但在Chrome 31中不会引发异常.

为什么?

规范说明了这一点responseType

如果状态为LOADING或DONE,则抛出"InvalidStateError"异常.

但在这种情况下,州是UNSENT.

这是怎么回事?

Seb*_*bas 32

请注意,我调用xhr对象responseType 后的设置open解决了我的问题(使用IE11)

  • 从MS:"超时属性可能只在调用open方法和第一次调用send方法之间的时间间隔内设置." (3认同)
  • 为我解决了它.获得DOMException ABORT_ERR 20. IE先生,这对你来说总是一次冒险. (2认同)

Car*_*nas 6

这是一个工作草案,所以如果实现中存在细微的差异或错误,这是正常的.我认为Firefox仍然遵循2011年8月草案中描述的行为,其中指定如果状态不是OPENED或者HEADERS_RECEIVED抛出异常.