由于错误c00ce56e,无法完成操作
我已经从富脸3.3升级到富脸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 <![CDATA[Hello !]]>
我正在使用
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显示了正确的结果,没有任何错误
你的分析是正确的。 Content-Type
标头中的charset
属性是错误的,并且IE9因错误c00ce56e
。
默认情况下,JSF使用从ServletRequest#getCharacterEncoding()
获得的那个。 这通常默认为客户端指定的一个,如果没有则通常为null
(通常是这种情况)。 这通常可以被一些调用request.setCharacterEncoding()
自定义filter覆盖。
鉴于不正确的字符集,这只能意味着您的Web应用程序在某处调用request.setCharacterEncoding()
其中包含"UTF8"
而不是"UTF-8"
。
我开始检查所有filter及其配置。
我有类似的错误,但问题是响应头内容长度。 我们在请求标头上有24kb的数据,我们必须将它减少到一半。 这解决了这个问题。 我希望这可以帮助别人。