Domanda

Sto provando a pubblicare sul modulo di accesso di un'applicazione su un altro sottodominio del mio sito. È un'app di terze parti a cui non ho accesso alla fonte.

So che non puoi accedere alla maggior parte delle funzionalità di un iframe tra domini a causa della stessa politica di origine . Tutto ciò di cui ho bisogno per accedere, tuttavia, è l'URL a cui è stato reindirizzato (tramite JavaScript) all'interno dell'iframe. Ha un token di sessione che desidero passare.

Sembra qualcosa che potrebbe essere abbastanza sicuro da essere autorizzato, ma non ho ancora trovato un modo per farlo. Sto usando jQuery e ho provato $ ('iframe'). Contents () , ma sembra che non abbia alcuna autorizzazione su quell'oggetto. Ho anche controllato $ ('iframe'). Attr ('src') , ma rimane come l'URL pre-reindirizzamento. C'è un altro modo?

È stato utile?

Soluzione

No, non hai accesso a nessuna proprietà all'interno di un iframe. Hai accesso solo al posizionamento esterno e alle proprietà di stile.

Questo è il motivo per cui i frame sono così difficili da lavorare. Di solito li uso solo se non mi interessa cosa viene fatto al loro interno.

Non è possibile eseguire un'autenticazione lato server e il passaggio di token? Invece di fare eseguire l'autenticazione al client, non puoi farlo sul tuo server? Potrebbe essere necessario fare un lavoro extra per creare la richiesta HTTP e analizzare la risposta, ma si evitano eventuali problemi di iframe.

La linea di fondo è che gli iframe probabilmente non sono i migliori su cui fare affidamento (specialmente quando si tratta di funzionalità cross-browser) per cose importanti come l'autenticazione.

Altri suggerimenti

Prova questo esempio (metodo 2) in cui l'autore imposta un altro iframe all'interno del in primo luogo, caricando una pagina nel dominio originale. La pagina interna può chiamare javascript sul genitore esterno, poiché sono caricati nello stesso dominio. Carica semplicemente la pagina interna con i parametri appropriati, che possono essere passati al genitore.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top