2013-03-22 15 views
9

Ho un iframe sulla mia pagina P1 che è ospitato sul server S1. In fase di esecuzione, faccio iframe.src= per caricare la pagina P2 ospitata sul server S2 all'interno dell'iframe.Errore permesso di script, anche con CORS abilitato

Conosco CORS e sul server S2 per pagina P2, ho già impostato Access-Control-Allow-Origin: * e posso confermare lo stesso sull'intestazione della risposta quando lo controllo nel browser.

Ora la pagina P2 e tutto il suo asset caricano solo file, ma nel momento in cui provo ad accedere al DOM di P2 da P1 utilizzando window.frames["iframe"].document, genera un errore di autorizzazione.

Anche se sto impostando Access-Control-Allow-Origin: * sul server S2, perché non riesco ancora ad accedere al DOM di P2? È così che funziona Access-Control-Allow-Origin: *?

Request-Response

+0

Cosa succede con la richiesta di pre-volo? Vedere https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS – symcbean

+1

Sì, sarebbe bello vedere le fonti di intestazione richiesta/risposta. –

+0

Bene, non sto usando XMLHttpRequest e non sono sicuro di poterlo usare con "iframe.src". Ma posso confermare che l'intestazione della risposta per P2 contiene "Access-Control-Allow-Origin: *" proveniente da S2. – coreSOLO

risposta

1

È possibile utilizzare PostMessages per impostare la comunicazione tra i documenti. Anche se provenienti da domini diversi.

È possibile inviare dati tramite PostMessage. È limitato, ma questo è meglio di niente

Dai un'occhiata a http://easyxdm.net/wp/ ha una buona api con cui lavorare. Molto tempo fa ho realizzato http-< -> richieste https ajax con tale libreria.

+0

Grazie, ma sfortunatamente ho bisogno di un controllo più ricco di "PostMessages". Sto cercando la manipolazione DOM completa e ho pensato che "Access-Control-Allow-Origin: *" dovrebbe darmi questo. – coreSOLO

+0

@coreSOLO se è possibile modificare il codice della pagina iframed, è possibile effettuare chiamate RPC tramite 'EasyXDM' e apportare eventuali manipolazioni DOM necessarie. Non sarà facile ma lo farai sicuramente. –

+0

@coreSOLO con 'EasyXDM' Sono stato in grado di raccogliere il contenuto da tutti i tag di script in iframe e inviarlo alla pagina principale –

Problemi correlati