2012-04-17 25 views
11

He actualizado de caras ricas 3.3 a caras ricas 4.2 porque ajax no funcionaba para IE9. Ahora todavía no funciona.No se pudo completar la operación debido al error c00ce56e

Después de recibir la Respuesta IE obtiene un error JS "SCRIPT58734: Der Vorgang konnte aufgrund des folgenden Fehlers nicht fortgesetzt werden: c00ce56e." al intentar

data.responseText=request.responseText 

en jsf.js.html? Ln = javax.faces & conversationContext = 2, línea 1 Fila 21747

Creo que es debido a una cabecera HTTP incorrecct

Content-Type: text/xml;charset=UTF8 

debe ser

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

Aquí La respuesta cruda de la s erver

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> 

estoy usinng

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

y se ejecuta en Tomcat 7

EDIT: de Ahora estoy seguro de su encabezado. Establecí un punto de interrupción en charles-proxy y edité el encabezado de respuesta manualmente, con el encabezado http editado IE9 mostró el resultado correcto sin ningún error

Respuesta

18

Su análisis es correcto. El atributo charset en el encabezado Content-Type es incorrecto e IE9 ahoga el error c00ce56e.

JSF usa por defecto el que se obtiene de ServletRequest#getCharacterEncoding(). Por lo general, esto es predeterminado para el cliente, o null si no hay ninguno (que a menudo es el caso). Esto es normalmente anulable por algún filtro personalizado que llame al request.setCharacterEncoding().

Dado el conjunto de caracteres incorrecto, esto solo puede significar que su aplicación web está en alguna parte llamando al request.setCharacterEncoding() con "UTF8" en lugar de "UTF-8".

Empezaría a verificar todos los filtros y su configuración.

+0

vale la pena también un filtro. Creo que agregaré un filtro de respuesta que arregla el encabezado como una solución temporal hasta que encuentre el filtro que causa este error. gracias – wutzebaer

+0

en segundo lugar que ... tuve exactamente el mismo problema cuando tenía el juego de caracteres cp-1251 en lugar de windows-1251, así que ¡mantente atento a tu codificación! –

+1

Gracias, gracias, gracias! Mi solución fue agregar juego de caracteres: 'Response.ContentType =" application/json; charset = utf-8 ";' – iambriansreed

Cuestiones relacionadas