Rileva la richiesta proveniente da iframe

0

Ho appena avuto questa fantastica idea di simulare un'applicazione a singola pagina usando iframe. Sto usando un framework che usa i layout per visualizzare le pagine. Fortunatamente posso utilizzare un layout vuoto (ovvero non ha elementi aggiuntivi oltre ai tag html obbligatori) per visualizzare solo il corpo della pagina all'interno di un iframe una volta che la pagina è stata caricata con il layout originale.

Penso che possa essersi creato un po 'di confusione, quindi sostanzialmente questa è la mia idea:

L'utente apre il sito, il sito carica il layout principale con l'intestazione e la navigazione e tutto il resto. Quindi il corpo del layout viene visualizzato all'interno di un iframe che sta ottenendo il suo contenuto dallo stesso url utilizzando la stessa pagina ma un layout diverso (uno vuoto).

Il problema: come faccio a distinguere tra se si tratta di una richiesta iniziale in arrivo o solo un'altra richiesta di pagina?

La soluzione - Se potessi in qualche modo rilevare richieste provenienti da iframe, potrei semplicemente sapere quando usare il layout principale o il layout vuoto. C'è un modo per rilevare le richieste inviate dagli iframe?

Ho anche pensato che potrei avere link speciali per caricare il contenuto della pagina, ad esempio se un utente apre la pagina http://example.com/products , quindi restituirei il layout principale e nell'iframe vorrei inviare una richiesta a http://example.com/empty/products . Ma poi dovrò modificare tutti i link in tutte le pagine per contenere /empty/ in essi o avrò il layout principale visualizzato all'interno del corpo della richiesta originale.

    
posta php_nub_qq 21.03.2015 - 14:22
fonte

2 risposte

5

Non è possibile rilevare che un iFrame stia effettuando la richiesta direttamente. Ovviamente puoi passare i parametri nell'URL per permetterti di fare la distinzione.

Poiché l'uso di iFrame è stato minimizzato, se non attivamente deprecato, potresti voler rivisitare la tua idea.

    
risposta data 21.03.2015 - 14:55
fonte
-1

Devi impostare le intestazioni CORS e disabilitare le richieste tra domini. Questo potrebbe aiutarti: link

    
risposta data 13.09.2016 - 00:29
fonte

Leggi altre domande sui tag