2012-04-17 3 views
11

IE9에서 ajax가 작동하지 않아 부유 한 얼굴에서 부유 한 얼굴로 업그레이드했습니다. 이제는 여전히 작동하지 않습니다.오류로 인해 작업을 완료 할 수 없습니다. c00ce56e

응답 IE를 수신 한 후 JS 오류 "SCRIPT58734 : 오류 메시지가 표시됨 : c00ce56e." jsf.js.html? LN = javax.faces & conversationContext = 2

data.responseText=request.responseText 

, 줄 1 개 행을하는 동안 21,747

나는 때문에 incorrecct HTTP 헤더의 생각

Content-Type: text/xml;charset=UTF8 

이어야합니다.
Content-Type: text/xml;charset=UTF-8 

여기에 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> 

내가

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

을 usinng와 바람둥이에 7

편집을 실행 해요 :의 지금 나는 그것의 헤더 확신합니다. charles-proxy에 중단 점을 설정하고 수동으로 응답 헤더를 편집했습니다. 편집 된 http 헤더 IE9는 오류없이 올바른 결과를 나타 냈습니다.

답변

18

분석에 문제가 없습니다. Content-Type 헤더의 charset 속성이 잘못되어 IE9가 오류 c00ce56e과 함께 오류가 발생합니다.

JSF는 기본적으로 ServletRequest#getCharacterEncoding()에서 얻은 것을 사용합니다. 일반적으로 클라이언트가 지정하는 기본값이 기본값이며,없는 경우에는 null이됩니다 (대개의 경우). 일반적으로이 필터는 request.setCharacterEncoding()을 호출하는 사용자 정의 필터로 대체 할 수 있습니다.

잘못된 문자 집합이 주어지면 이는 웹 응용 프로그램이 을 대신 "UTF8"으로 호출하는 것을 의미 할 수 있습니다.

모든 필터와 구성을 확인하기 시작했습니다.

+0

도 필터를 사용하고 있습니다. 나는이 오류를 일으키는 필터를 찾을 때까지 임시 필터로 헤더를 수정하는 응답 필터를 추가 할 것입니다. 덕분에 – wutzebaer

+0

나는 두 번째 .. 내가 정확히 동일한 문제를했을 때 나는 창문 -1251 대신에 cp-1251 문자셋을 가지고 있었기 때문에 인코딩에주의를 기울여야한다! –

+1

감사합니다. 감사합니다! 내 수정은 charset을 추가하는 것입니다 :'Response.ContentType = "application/json; charset = utf-8";' – iambriansreed

관련 문제