【问题标题】:Uncaught Error: INVALID_STATE_ERR: DOM Exception 11未捕获的错误:INVALID_STATE_ERR:DOM 异常 11
【发布时间】:2022-02-02 17:08:48
【问题描述】:

我收到以下错误。

未捕获的错误:INVALID_STATE_ERR:DOM 异常 11

这是我得到错误运行时间的代码。

xhttp.setRequestHeader("Content-type","application/xhtml+xml");<br>
xhttp.open("POST",xmlFile,true);<br>
xhttp.send(postData);

我尝试在 xhttp.open 的第三个参数中使用 false
谁能告诉我这是什么原因造成的?

【问题讨论】:

  • 您是否将请求发送到为该页面提供服务的同一服务器?记住 CORS!
  • 我的请求在两台服务器上进行。一个是我们的服务器(中间层),第二个是 expedia 服务器(一个酒店预订 API)。我们的中间层进一步发送到 expedia 并返回响应给我们。

标签: javascript android cordova xmlhttprequest domexception


【解决方案1】:

错误来自执行顺序:

xhttp.open("POST",xmlFile,true);
xhttp.setRequestHeader("Content-type","application/xhtml+xml");
xhttp.send(postData);

必须先打开连接,然后设置请求头,否则会报错。

【讨论】:

  • 嗨,匿名者 您对上述代码的顺序是完美的。现在我的代码工作正常。非常感谢。
  • 伙计,我不知道为什么,但在 chrome 中,它并不关心我设置标题的顺序。当谈到使用 phantomjs 进行无头浏览器测试时,它爆炸了!非常感谢!我真的整天都在用头撞我的桌子。
【解决方案2】:

XMLHttpRequest::Status 不可用,直到 XMLHttpRequest::readyState 更改为 4 即。已从服务器获取正确的响应,现在已填充到 Status 变量中。

因此提前访问 XMLHttpRequest::Status 可能会导致此错误。

解决方案:首先验证readyState,并且只有在成功时才能访问Status

if (xmlhttp.readyState==4)
{
    switch (xmlhttp.status)
    {
    case 200: // Do the Do
        break;
    case 404: // Error: 404 - Resource not found!
        break;
    default:  // Error: Unknown!
    }
}

【讨论】:

    【解决方案3】:

    套接字还没有被配置/初始化/打开连接并且send已经被调用

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-22
      • 2011-03-30
      • 1970-01-01
      • 1970-01-01
      • 2015-05-14
      • 1970-01-01
      • 1970-01-01
      • 2014-08-26
      相关资源
      最近更新 更多