Perché un iframe mostra "refused to connect": X-Frame-Options o CSP frame-ancestors sulla pagina incorporata. Incolla i suoi header di risposta per vedere il verdetto, poi copia la correzione lato server.
Il riquadro grigio "refused to connect" significa che la pagina dentro il tuo iframe ha detto al browser di non essere incorporata. Lo fa con un header di risposta X-Frame-Options (DENY o SAMEORIGIN) o con una regola frame-ancestors della Content-Security-Policy. Solo il server del sito incorporato può rimuovere il blocco. Incolla qui sotto i suoi header per vedere quale regola ti blocca.
Cosa significa ogni valore dell'header per il tuo iframe
Questo errore non è un problema di rete e il tuo tag iframe non ha nulla di sbagliato. Il browser ha scaricato la pagina, ha letto un header che vieta l'incorporamento e ha sostituito il contenuto con un errore. Il motivo è la protezione dal clickjacking: a una pagina che chiunque può incorporare si possono sovrapporre pulsanti invisibili. La soluzione dipende da quale server ha inviato l'header.
No. La regola è applicata dal browser del visitatore per conto del sito incorporato, e nessun attributo del tuo iframe può scavalcarla. Le uniche strade sono cambiare gli header del sito incorporato, usare un URL di embed che il sito fornisce per l'incorporamento, o mettere un link esterno.
Controlla se c'è X-Frame-Options: DENY, o frame-ancestors 'none'. Entrambi bloccano ogni pagina genitore, comprese quelle dello stesso dominio. Passa a SAMEORIGIN o frame-ancestors 'self'. Ricorda che un sottodominio o una porta diversi sono un'origine diversa.
Usa frame-ancestors, perché può elencare più genitori consentiti e prevale ogni volta che sono presenti entrambi. Se invii anche X-Frame-Options, mantienilo coerente con la regola CSP così chi leggerà la config dopo di te non viene tratto in inganno.
La normale pagina di visualizzazione o del luogo di solito invia un header contro l'incorporamento, mentre il servizio pubblica un indirizzo di embed separato pensato per gli iframe, spesso sotto Condividi e poi Incorpora. Il nostro generatore di codice embed converte per te i link supportati in quegli indirizzi di embed.
Sì. Se il tuo iframe sta dentro un altro iframe, ogni antenato fino alla pagina principale deve rispettare la policy, non solo il genitore diretto.
Ogni esempio consente lo stesso sito più un partner. Sostituisci https://partner.example con l'origine che deve poterti incorporare, o usa 'none' per bloccare tutti.
always mantiene l'header anche sulle pagine di errore. Rimuovi eventuali vecchie righe X-Frame-Options così le due regole non divergono.
Richiede mod_headers. Header always set sostituisce qualsiasi valore precedente dello stesso header.
Helmet imposta X-Frame-Options su SAMEORIGIN di default. Disattivarlo e impostare frame-ancestors mantiene un'unica fonte di verità.
headers() aggiunge header di risposta a ogni route corrispondente. Le piattaforme di hosting possono aggiungerne di proprie, quindi controlla poi la risposta in produzione.
Incolla gli header di risposta della pagina dentro l'iframe. Tutto avviene in questa pagina; non viene scaricato nulla.
Header di risposta della pagina incorporata
Origine della pagina che contiene l'iframe
Origine della pagina incorporata
Ripristina gli header di esempio
Verdetto
Questa pagina genitore può incorporare la pagina.
Il browser si rifiuterà di mostrare questa pagina nell'iframe.
Ancora nessun verdetto chiaro.
Bloccato da Content-Security-Policy: frame-ancestors 'none'.
Consentito da frame-ancestors: {v} corrisponde all'origine genitore.
Bloccato da frame-ancestors: nessuna fonte nell'elenco corrisponde a {v}.
X-Frame-Options è presente ma ignorato, perché decide frame-ancestors.
Bloccato da X-Frame-Options: DENY.
Consentito da X-Frame-Options: SAMEORIGIN, e le origini coincidono.
Bloccato da X-Frame-Options: SAMEORIGIN, e {v} è un'origine diversa.
ALLOW-FROM è obsoleto e ignorato, quindi non blocca.
X-Frame-Options ha più valori diversi. Inviane esattamente uno.
Content-Security-Policy-Report-Only non blocca mai; è stato ignorato.
Nessun header contro l'incorporamento trovato, quindi qualsiasi sito può incorporare questa pagina.
Inserisci entrambe le origini come URL completi, ad esempio https://example.com.
Inizia gratis · Nessuna carta di credito richiesta