2012-04-17 14 views
11

Tôi đã nâng cấp từ các khuôn mặt phong phú lên 3,3 khuôn mặt phong phú 4.2 vì ajax không hoạt động đối với IE9. Bây giờ nó vẫn không hoạt động.Không thể hoàn thành thao tác do lỗi c00ce56e

Sau khi nhận được phản hồi IE nhận được lỗi JS "SCRIPT58734: Der Vorgang konnte aufgrund des folgenden Fehlers nicht fortgesetzt werden: c00ce56e". trong khi cố gắng

data.responseText=request.responseText 

trên jsf.js.html? Ln = javax.faces & conversationContext = 2, Line 1 Row 21747

Tôi nghĩ rằng đó là vì một tiêu đề incorrecct HTTP

Content-Type: text/xml;charset=UTF8 

phải là

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

Ở đây Phản hồi thô của 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> 

tôi 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

và chạy trên tomcat 7

EDIT: của bây giờ tôi chắc chắn rằng nó tiêu đề. Tôi đặt điểm ngắt trong proxy charles và chỉnh sửa tiêu đề phản hồi theo cách thủ công, với tiêu đề http đã chỉnh sửa IE9 cho thấy kết quả đúng mà không có bất kỳ lỗi nào

Trả lời

18

Phân tích của bạn là chính xác. Thuộc tính charset trong tiêu đề Content-Type là sai và cuộn cảm IE9 trên đó có lỗi c00ce56e.

JSF sử dụng theo mặc định như được lấy từ ServletRequest#getCharacterEncoding(). Thông thường, giá trị mặc định này được đặt mặc định cho một khách hàng được chỉ định, hoặc null nếu không có trường hợp nào (thường là trường hợp đó). Điều này thường được bù đắp bởi một số bộ lọc tùy chỉnh gọi request.setCharacterEncoding().

Với bộ ký tự không chính xác, điều này chỉ có nghĩa là ứng dụng web của bạn đang ở đâu đó gọi request.setCharacterEncoding() với "UTF8" thay vì "UTF-8".

Tôi muốn bắt đầu kiểm tra tất cả các bộ lọc và cấu hình của chúng.

+0

cũng được sử dụng cho bộ lọc. tôi nghĩ rằng tôi sẽ thêm một bộ lọc phản ứng mà sửa chữa các tiêu đề như là một sửa chữa termporary cho đến khi tôi tìm thấy các bộ lọc gây ra lỗi này. cảm ơn – wutzebaer

+0

i thứ hai mà .. tôi đã có chính xác cùng một vấn đề khi tôi đã có charset cp-1251 thay vì windows-1251 - vì vậy giữ một mắt trên mã hóa của bạn! –

+1

Cảm ơn cảm ơn! Sửa lỗi của tôi là thêm bộ ký tự: 'Response.ContentType =" application/json; charset = utf-8 ";' – iambriansreed