Por que um iframe mostra "recusou a conexão": X-Frame-Options ou CSP frame-ancestors na página incorporada. Cole os cabeçalhos de resposta dela para ver o veredito e copie a correção para o servidor.
A caixa cinza de "recusou a conexão" significa que a página dentro do seu iframe disse ao navegador para não ser incorporada. Ela faz isso com um cabeçalho de resposta X-Frame-Options (DENY ou SAMEORIGIN) ou com uma regra frame-ancestors na Content-Security-Policy. Só o servidor do site incorporado pode liberar isso. Cole os cabeçalhos dele abaixo para ver qual regra está bloqueando você.
O que cada valor de cabeçalho significa para o seu iframe
Esse erro não é uma falha de rede e não há nada errado com a sua tag iframe. O navegador buscou a página, leu um cabeçalho que proíbe a incorporação e substituiu o conteúdo por um erro. O motivo é a proteção contra clickjacking: uma página que qualquer um pode incorporar pode ser coberta com botões invisíveis. A solução depende de qual servidor enviou o cabeçalho.
Não. A regra é aplicada pelo navegador do visitante em nome do site incorporado, e nenhum atributo no seu iframe consegue sobrescrevê-la. Os únicos caminhos são mudar os cabeçalhos do site incorporado, usar uma URL de incorporação que o site fornece para iframes ou colocar um link.
Verifique se há X-Frame-Options: DENY ou frame-ancestors 'none'. Os dois bloqueiam qualquer página pai, incluindo páginas do mesmo domínio. Troque para SAMEORIGIN ou frame-ancestors 'self'. Lembre que um subdomínio ou uma porta diferente é outra origem.
Use frame-ancestors, porque ele pode listar vários pais permitidos e vence sempre que os dois estão presentes. Se você também enviar X-Frame-Options, mantenha-o coerente com a regra da CSP para não confundir a próxima pessoa que ler a configuração.
A página comum de assistir ou do local normalmente envia um cabeçalho de incorporação, enquanto o serviço publica um endereço de incorporação separado, feito para iframes, que costuma ficar em Compartilhar e depois Incorporar. Nosso gerador de código de incorporação converte links compatíveis nesses endereços para você.
Sim. Se o seu iframe está dentro de outro iframe, todos os ancestrais até a página do topo precisam corresponder à política, não só o pai direto.
Cada exemplo libera o próprio site mais um parceiro. Troque https://partner.example pela origem que deve poder incorporar você, ou use 'none' para bloquear todo mundo.
always mantém o cabeçalho também nas páginas de erro. Remova qualquer linha antiga de X-Frame-Options para que as duas regras não fiquem divergentes.
Precisa do mod_headers. Header always set substitui qualquer valor anterior do mesmo cabeçalho.
O Helmet define X-Frame-Options como SAMEORIGIN por padrão. Desligar isso e definir frame-ancestors mantém uma única fonte de verdade.
headers() adiciona cabeçalhos de resposta a cada rota correspondente. As plataformas de hospedagem podem adicionar os próprios, então confira a resposta em produção depois.
Cole os cabeçalhos de resposta da página dentro do iframe. Tudo roda nesta página; nada é buscado.
Cabeçalhos de resposta da página incorporada
Origem da página que contém o iframe
Origem da página incorporada
Restaurar os cabeçalhos de exemplo
Veredito
Esta página pai pode incorporar a página.
O navegador vai se recusar a mostrar esta página no iframe.
Ainda não há um veredito claro.
Bloqueado pela Content-Security-Policy: frame-ancestors 'none'.
Permitido pelo frame-ancestors: {v} corresponde à origem pai.
Bloqueado pelo frame-ancestors: nenhuma fonte da lista corresponde a {v}.
O X-Frame-Options está presente, mas é ignorado, porque o frame-ancestors decide.
Bloqueado pelo X-Frame-Options: DENY.
Permitido pelo X-Frame-Options: SAMEORIGIN, e as origens coincidem.
Bloqueado pelo X-Frame-Options: SAMEORIGIN, e {v} é uma origem diferente.
ALLOW-FROM é obsoleto e ignorado, então não bloqueia.
O X-Frame-Options tem vários valores diferentes. Envie exatamente um.
A Content-Security-Policy-Report-Only nunca bloqueia; ela foi ignorada.
Nenhum cabeçalho de incorporação encontrado, então qualquer site pode incorporar esta página.
Informe as duas origens como URLs completas, por exemplo https://example.com.
Comece grátis · Sem cartão de crédito