2012-04-17 18 views
11

Ho aggiornato da facce ricche da 3.3 a facce ricche 4.2 perché ajax non ha funzionato per IE9. Ora non funziona ancora.Impossibile completare l'operazione a causa di un errore c00ce56e

Dopo aver ricevuto la risposta IE ottiene un errore JS "SCRIPT58734: Der Vorgang konnte aufgrund des folgenden Fehlers nicht fortgesetzt werden: c00ce56e." durante il tentativo

data.responseText=request.responseText 

su jsf.js.html? Ln = javax.faces & conversationContext = 2, Linea 1 Linea 21747

Penso che sia a causa di un colpo di testa incorrecct HTTP

Content-Type: text/xml;charset=UTF8 

dovrebbe essere

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

Qui Il grezzo-risposta dei 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> 

sto 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

e in esecuzione su Tomcat 7

EDIT: di Ora sono sicuro che la sua intestazione. Ho impostato un punto di interruzione in charles-proxy e modificato l'intestazione di risposta manualmente, con l'intestazione http IE9 modificata ha mostrato il risultato corretto senza errori

risposta

18

L'analisi è corretta. L'attributo charset nell'intestazione Content-Type è errato e IE9 si strozza con l'errore c00ce56e.

JSF utilizza per impostazione predefinita quello ottenuto da ServletRequest#getCharacterEncoding(). Normalmente questo valore è impostato su quello specificato dal cliente o null se non ce n'è uno (che è spesso il caso). Questo è normalmente sovrascrivibile da alcuni filtri personalizzati che chiamano request.setCharacterEncoding().

Dato il set di caratteri errato, questo può significare solo che la tua applicazione web è da qualche parte chiamando request.setCharacterEncoding() con "UTF8" anziché "UTF-8".

Vorrei iniziare a controllare tutti i filtri e la loro configurazione.

+0

ok anche per un filtro. Penso che aggiungerò un filtro di risposta che risolve l'intestazione come una correzione temporanea finché non trovo il filtro che causa questo errore. grazie – wutzebaer

+0

in secondo luogo .. ho avuto esattamente lo stesso problema quando avevo charset cp-1251 invece di windows-1251 - quindi tieni d'occhio la tua codifica! –

+1

Grazie, grazie! La mia correzione era l'aggiunta di charset: 'Response.ContentType =" application/json; charset = utf-8 ";' – iambriansreed

Problemi correlati