INVALID_STATE_ERR:DOM异常11(WebKit)

Reg*_*rey 38 javascript dom webkit cappuccino

我最近测试了一个我正在使用Chrome和Safari的Cappuccino应用程序.我收到错误:

INVALID_STATE_ERR: DOM Exception 11: An attempt was made to use an object that is not, or is no longer, usable.
Run Code Online (Sandbox Code Playgroud)

缺乏信息令人沮丧.我尝试使用它的对象和位置是什么?Chrome会尝试回答第二个问题,但它提供的行号465并不意味着它所提供的文件只有94行.没有更多信息,我甚至不知道从哪里开始寻找.

小智 61

通常,当您使用async = true调用open方法时,XMLHttpRequest会发生此错误,或者您将async参数保留为undefined,因此默认为异步,然后您可以访问status或responseText属性.这些属性仅在您执行同步调用后或readyState准备就绪时(异步调用响应时)可用.我建议你首先尝试使用async = false,然后切换到true并使用onReadyStateChange.

  • 谢谢伙计......我一直专注于这一小时. (12认同)

Jef*_*mer 23

在我的情况下,我在打开连接之前设置了标题.要防止此错误,请在打开连接后设置标头:

var fd = new FormData();
fd.append("fileToUpload", file);
var xhr = new XMLHttpRequest();
xhr.open("POST", postUrl, true);
xhr.setRequestHeader("cache-control", "no-cache");
xhr.send(fd);
Run Code Online (Sandbox Code Playgroud)

我理解这个答案是针对我的问题而不是通用的INVALID_STATE_ERR:DOM异常11消息,但我想我会在这里为下一个人发布我的解决方案.

  • 我很高兴你发布了这个答案,因为这正是我在做的事情. (3认同)

Jam*_*ate 9

Chrome canary为DOM Exceptions提供堆栈跟踪!

  • "DOM例外在Chrome 21中有堆栈跟踪." http://code.google.com/p/chromium/issues/detail?id=64319 (3认同)

Bri*_*her 5

当Javascript尝试document.write()进入XHTML页面(Content-Type: application/xhtml+xml)时,也会发生这种情况.