2012-07-04 7 views
5

Mam następującą konfigurację:Pierwsze IE przestać traktować jako cross-ajax domeny wewnątrz iframe

www.domain1.com/page1/ - sprawia, ajax POST prośba o www.domain1.com/page2/

www.domain1.com/page2/ - zwraca json odpowiedzi


www.domain2.com/page1/ - osadza www.domain1.com/page1/ w iframe


Po załadowaniu www.domain1.com/page1/ żądanie ajax jest wykonane i wszystko działa. Kiedy ładuję www.domain2.com/page1/ w przeglądarce Chrome lub Firefox, w elemencie iframe jest wyświetlany kod www.domain1.com/page1/, a żądanie ajax jest w porządku.

Kiedy próbuję załadować www.domain2.com/page1/ w IE7/IE8, żądanie ajax daje zabronione błąd - wydaje się traktować jako żądanie przekroju domeny i blokując go, mimo że żądanie jest wykonany z www.domain1.com/page1/ do www.domain1.com/page2/ .

Działa dobrze w IE, gdy żądanie jest GET, ale nie POST. Jak mogę sprawić, by IE przestał traktować to jako połączenie międzydomenowe, ponieważ cały przepływ jest zawarty w elemencie iframe?

Dzięki!

+0

Prawdopodobnie trochę poluzować ustawienia zabezpieczeń (może włączyć "Uruchamianie programów i plików w IFRAME") – t3hn00b

Odpowiedz

2

jQuery v1.7.2 naprawi CORS w IE, nawet jeśli tak naprawdę nie jest to CORS, ale IE uważa, że ​​tak.
Ta prosta logiczna na początku swojej funkcji JavaScript powinno rozwiązać ten problem

$.support.cors = true; 

Działa to zarówno GET i POST.

+0

Mieliśmy ten sam problem. Aktualizacja jQuery v1.7.1 do v1.11.0 (obecna wersja) rozwiązała problem. Dziękuję Ci! – Lionel