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

时间:2013-12-24 12:04:49

标签: javascript ajax xmlhttprequest w3c specifications

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

为什么?

The Spec说明设置responseType

  如果状态为LOADING或DONE,则

抛出“InvalidStateError”异常。

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

发生了什么事?

2 个答案:

答案 0 :(得分:31)

请注意,在之后设置screen.Items.deleteSelected(); 我在xhr对象上调用myapp.ViewRecordDetails.DeleteRecord_execute = function (screen) { // Write code here. screen.Items.deleteSelected(); }; 解决了我的问题(使用IE11)

答案 1 :(得分:6)

这是工作草案,所以如果实现中存在细微的差异或错误,这是正常的。我认为Firefox仍然遵循draft of August 2011中描述的行为,其中is specified如果状态不是OPENEDHEADERS_RECEIVED ,则会引发异常