Se negó a mostrarse en un marco porque configuró 'X-Frame-Options' en 'SAMEORIGIN' [duplicado]
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.
Encontré una mejor solución. Reemplace "watch?v="
por "v/"
y funcionará
var url = url.replace("watch?v=", "v/");
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=embed
al final de la URL antes de publicar en la URL de Google:
var url = data.url + "&output=embed";
window.location.replace(url);
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>
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.
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>