2012-07-04 6 views
5

Ho la seguente configurazione:Ottenere IE per fermare ajax trattarli come cross-domain, all'interno iframe

www.domain1.com/page1/ - rende ajax POST richiesta di www.domain1.com/page2/

www.domain1.com/page2/ - restituisce risposta JSON


www.domain2.com/page1/ - ingloba www.domain1.com/page1/ in iframe


Quando carico www.domain1.com/page1/ viene effettuata la richiesta di ajax e tutto funziona. Quando carico www.domain2.com/page1/ in Chrome o Firefox, www.domain1.com/page1/ viene visualizzato nell'iframe e la richiesta ajax viene eseguita correttamente.

Quando provo a caricare www.domain2.com/page1/ in IE7/IE8, la richiesta Ajax dà un errore di VIETATI - sembra essere trattare la richiesta come cross-domain e il blocco di esso, anche se la richiesta viene effettuata www.domain1.com/page1/-www.domain1.com/page2/ .

Funziona bene in IE quando la richiesta è GET, ma non POST. Come posso convincere IE a smettere di trattarlo come un dominio incrociato, solo perché l'intero flusso è contenuto in un iframe?

Grazie!

+0

Probabilmente allentare un po le impostazioni di sicurezza (forse abilitare "Avvio di programmi e file in IFRAME") – t3hn00b

risposta

2

jQuery v1.7.2 risolverà CORS in IE, anche se non è realmente CORS ma IE pensa che lo sia.
Questo semplice booleano all'inizio della vostra funzione JavaScript dovrebbe risolvere questo comportamento

$.support.cors = true; 

Questo funziona sia per GET e POST.

+0

Abbiamo avuto lo stesso problema. L'aggiornamento da jQuery v1.7.1 alla v1.11.0 (versione corrente) ha funzionato. Grazie! – Lionel

Problemi correlati