由于错误 c00ce56e 无法完成操作

Posted

技术标签:

【中文标题】由于错误 c00ce56e 无法完成操作【英文标题】:Could not complete the operation due to error c00ce56e 【发布时间】:2012-04-28 23:18:39 【问题描述】:

我已经从 Rich faces 3.3 升级到 rich faces 4.2,因为 ajax 不适用于 IE9。现在它仍然无法正常工作。

在收到响应后,IE 收到一个 JS 错误“SCRIPT58734: Der Vorgang konnte aufgrund des folgenden Fehlers nicht fortgesetzt werden: c00ce56e.” 在尝试时

data.responseText=request.responseText

关于 jsf.js.html?ln=javax.faces&conversationContext=2,第 1 行第 21747 行

我认为这是因为 HTTP 标头不正确

Content-Type: text/xml;charset=UTF8

应该是

Content-Type: text/xml;charset=UTF-8

这里是服务器的原始响应

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
X-Powered-By: JSF/2.0
Cache-Control: no-cache
Content-Type: text/xml;charset=UTF8
Content-Length: 293
Date: Tue, 17 Apr 2012 15:25:22 GMT

<?xml version='1.0' encoding='UTF8'?>
<partial-response><changes><update id="outtest"><![CDATA[<span id="outtest"><span     class="outhello">Hello !</span></span>]]></update><update id="javax.faces.ViewState"><![CDATA[2809980525147413088:295565165947012503]]></update></changes></partial-response>

我正在使用

javaee-web-api 6
myfaces-orchestra-core 1.4
Hibernate  4.1
Spring 3.1.1
Richfaces 4.2.0
Primefaces 3.2
jsf-api+impl 2.1.7

jstl 1.2

并在 tomcat 7 上运行

编辑: 现在我确定它的标题。我在 charles-proxy 中设置了一个断点并手动编辑了响应头,编辑后的 ​​http 头 IE9 显示正确的结果,没有任何错误

【问题讨论】:

【参考方案1】:

您的分析是正确的。 Content-Type 标头中的 charset 属性错误,IE9 因错误 c00ce56e 而阻塞。

JSF 默认使用从ServletRequest#getCharacterEncoding() 获得的那个。这通常默认为客户指定的,或者 null 如果没有(通常是这种情况)。这通常可以被一些调用 request.setCharacterEncoding() 的自定义过滤器覆盖。

鉴于不正确的字符集,这只能意味着您的 Web 应用程序在某处调用 request.setCharacterEncoding() 并使用 "UTF8" 而不是 "UTF-8"

我会开始检查所有过滤器及其配置。

【讨论】:

好的,也可以考虑过滤器。我想我会添加一个响应过滤器来修复标题作为临时修复,直到我找到导致此错误的过滤器。谢谢 第二点,当我使用 charset cp-1251 而不是 windows-1251 时,我遇到了完全相同的问题 - 所以请注意您的编码! 谢谢谢谢谢谢!我的解决方法是添加字符集:Response.ContentType = "application/json;charset=utf-8"; 显然,如果任何异步加载的 URL 具有无效的字符集,就会发生这种情况。在我的例子中,是 Angular 的几个 .html 模板和 Web 服务器上的“utf8”后备字符集触发了错误。我再也不会忘记破折号了 ;-)【参考方案2】:

我遇到了类似的错误,但问题在于响应标头内容长度。我们在请求标头上有 24kb 的数据,我们必须将其减半。这解决了这个问题。我希望这对某人有帮助。

【讨论】:

我建议这种答案转到评论而不是答案。

以上是关于由于错误 c00ce56e 无法完成操作的主要内容,如果未能解决你的问题,请参考以下文章

Microsoft Edge:XMLHttpRequest:网络错误 0x2efd,由于错误 00002efd 无法完成操作

IE11 HTTPS AJAX XMLHttpRequest:网络错误 0x2eff,由于错误 00002eff 无法完成操作

Ajax错误 “SCRIPT7002: XMLHttpRequest: 网络错误 0x2ef3, 由于出现错误 00002ef3 而导致此项操作无法完成” 的归纳总结

eNSP V100R002C00B500 Setup模拟CE6800

查找和合并嵌套数组

无法使用 Pentaho PDI CE 连接到 MongoDb