2012-02-14 36 views
7

Tôi có biểu mẫu có mục tiêu là khung nội tuyến.Trình khám phá Internet chặn phản hồi XML

Khi gửi biểu mẫu, phản hồi là XML và tôi có Javascript phân tích phản hồi.

Tôi nhận thấy rằng khi chạy trên IE, IE chặn phản hồi và xử lý nó dưới dạng nguồn cấp dữ liệu RSS, vì vậy mã của tôi không bao giờ nhận được phản hồi. Nếu tôi vô hiệu hóa các nguồn cấp dữ liệu RSS (từ tùy chọn internet, tab nội dung) mọi thứ hoạt động tốt.

Tôi đặt loại nội dung của phản hồi thành “text/xml; charset = UTF-8 ”nhưng vẫn không hoạt động.

Có cách giải quyết nào không?

+1

Heh, tôi thích đọc về những thứ kỳ lạ như thế này trong IE. – Oliver

Trả lời

2

Cách giải quyết tốt nhất sẽ không sử dụng iframe trong trường hợp này. Có vẻ như IE đang bắt được phản hồi http và tự đọc nó. Có lý do nào bạn không thực hiện cuộc gọi AJAX để truy xuất thông tin không? Có vẻ như bạn đang dựa vào JavaScript để xử lý phản hồi, vì vậy tôi nghĩ rằng việc sử dụng đối tượng XMLHttpRequest sẽ tốt hơn cho bạn: http://www.w3.org/TR/XMLHttpRequest/

Nếu quá phức tạp, hãy xem thư viện như jQuery: http://jquery.com/ được xây dựng trong (và đơn giản hơn nhiều) chức năng để thực hiện cuộc gọi AJAX và xử lý các phản ứng.

Để mở rộng điều này, bạn sẽ liên kết chức năng gửi biểu mẫu với hàm JS (hoặc sử dụng jQuery để thực hiện) và nhận dữ liệu biểu mẫu, gửi yêu cầu AJAX và xử lý phản hồi. jQuery có một hàm serialize() có sẵn để chuyển đổi dữ liệu biểu mẫu trên một trang thành thông tin sẵn sàng để sử dụng trong hàm ajax() để gửi đến máy chủ. Nếu bạn không quen với đối tượng XMLHttpRequest, tôi sẽ khuyên bạn nên sử dụng một thư viện như jQuery cho nhiệm vụ này.

0

Vâng, cũng chắc chắn rằng các tập tin là đầu ra với đúng tiêu đề Content-Disposition sử dụng, làm điều đó IE bị "response.xml" chứ không phải "response.php" hoặc một số như vậy ...

'Nội dung-Bố trí: tệp đính kèm; filename = "response.xml" '

+0

Trên thực tế, bố cục đính kèm hoạt động lạ trong chrome đôi khi, vì vậy hãy đảm bảo bạn đọc thông tin tác nhân người dùng và chỉ thực hiện công cụ đính kèm trong IE. Các trình duyệt khác thường sẽ xử lý câu trả lời chính xác miễn là loại nội dung được đặt chính xác, bất kể url được sử dụng để truy cập vào nó. – Brian

1

OK, đã tìm thấy sự cố… Phản hồi của tôi XML chứa thẻ FEEDBACK. IE coi các thẻ này là nguồn cấp dữ liệu RSS. Thay đổi tên thẻ thành FDBACK giải quyết vấn đề này…

MS, tại sao điều này không được ghi?

Các vấn đề liên quan