Se negó a mostrarse en un marco porque configuró 'X-Frame-Options' en 'SAMEORIGIN' [duplicado]

Resuelto Ali Hmer asked hace 10 años • 16 respuestas

Estoy desarrollando un sitio web que se supone debe ser responsivo para que las personas puedan acceder a él desde sus teléfonos. El sitio tiene algunas partes seguras en las que se puede iniciar sesión utilizando Google, Facebook, etc. ( OAuth ).

El backend del servidor se desarrolla utilizando ASP.NET Web API 2 y el front-end es principalmente AngularJS con algo de Razor.

Para la parte de autenticación, todo funciona bien en todos los navegadores, incluido Android, pero la autenticación de Google no funciona en iPhone y me aparece este mensaje de error:

Refused to display 'https://accounts.google.com/o/openid2/auth
?openid.ns=http://specs.openid.ne…tp://axschema.org/namePerson
/last&openid.ax.required=email,name,first,last'
in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'.

Ahora, en lo que a mí respecta, no uso ningún iframe en mis archivos HTML.

Busqué en Google, pero ninguna respuesta me permitió solucionar el problema.

Ali Hmer avatar Dec 10 '13 22:12 Ali Hmer
Aceptado

Encontré una mejor solución. Reemplace "watch?v="por "v/"y funcionará

var url = url.replace("watch?v=", "v/");
Aymen Mouelhi avatar Nov 06 '2014 15:11 Aymen Mouelhi

Bien, después de dedicar más tiempo a esto con la ayuda de la publicación SO Superando "Pantalla prohibida por X-Frame-Options" , logré resolver el problema agregando &output=embedal final de la URL antes de publicar en la URL de Google:

var url = data.url + "&output=embed";
window.location.replace(url);
Ali Hmer avatar Dec 12 '2013 03:12 Ali Hmer

Intente utilizar https://www.youtube.com/embed/YOUR_VIDEO_CODE :

Puede encontrar todo el código incrustado en la sección 'Código incrustado' y se ve así:

<iframe width="560" height="315"  src="https://www.youtube.com/embed/YOUR_VIDEO_CODE" frameborder="0" allowfullscreen></iframe>
Bogdan Alexandru Militaru avatar Mar 20 '2016 11:03 Bogdan Alexandru Militaru

Si está utilizando un iframe para Vimeo , cambie la URL de:

https://vimeo.com/63534746

a:

http://player.vimeo.com/video/63534746

Esto funciona para mi.

Shakir Muhammed avatar Mar 05 '2014 06:03 Shakir Muhammed

Para insertar videos de YouTube en su página AngularJS, simplemente puede usar el siguiente filtro para su video:

app.filter('scrurl', function($sce) {
    return function(text) {
        text = text.replace("watch?v=", "embed/");
        return $sce.trustAsResourceUrl(text);
    };
});
<iframe class="ytplayer" type="text/html" width="100%" height="360" src="{{youtube_url | scrurl}}" frameborder="0"></iframe>
Irfan Muhammad avatar Feb 20 '2017 08:02 Irfan Muhammad