2012-07-04 28 views
5

tôi có các thiết lập sau:Bắt IE để ngăn chặn xử lý ajax như cross-domain, bên trong iframe

www.domain1.com/page1/ - làm ajax POST yêu cầu www.domain1.com/page2/

www.domain1.com/page2/ - trả về phản ứng json


www.domain2.com/page1/ - nhúng www.domain1.com/page1/ vào iframe


Khi tôi tải www.domain1.com/page1/, yêu cầu ajax được thực hiện và mọi thứ hoạt động. Khi tôi tải www.domain2.com/page1/ trong Chrome hoặc Firefox, www.domain1.com/page1/ được hiển thị trong khung nội tuyến và yêu cầu ajax được thực hiện tốt.

Khi tôi cố gắng để tải www.domain2.com/page1/ trong IE7/IE8, yêu cầu ajax đưa ra một lỗi FORBIDDEN - nó dường như được điều trị theo yêu cầu như cross-domain và ngăn chặn nó, mặc dù yêu cầu đang được thực hiện www.domain1.com/page1/-www.domain1.com/page2/ .

Tính năng này hoạt động tốt trong IE khi yêu cầu được NHẬN nhưng không được POST. Làm thế nào tôi có thể nhận được IE để ngăn chặn điều này như là tên miền chéo, chỉ vì toàn bộ luồng được chứa trong một khung nội tuyến?

Cảm ơn!

+0

Có thể nới lỏng một chút cài đặt bảo mật (có thể bật "Chạy chương trình và tệp trong IFRAME") – t3hn00b

Trả lời

2

jQuery v1.7.2 sẽ sửa CORS trong IE, ngay cả khi nó không thực sự là CORS nhưng IE nghĩ là vậy.
boolean này đơn giản ở phần đầu của hàm JavaScript của bạn nên sửa chữa hành vi này

$.support.cors = true; 

này làm việc cho cả hai GET và POST.

+0

Chúng tôi có cùng sự cố. Nâng cấp jQuery v1.7.1 lên v1.11.0 (phiên bản hiện tại) đã thực hiện thủ thuật. Cảm ơn bạn! – Lionel

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