J’ai un site Web dans ASP.NET.
Après le chargement de la page, je tombe sous l’erreur.
Erreur: le chargement refusé par X-Frame-Options: http://www.youtube.com/v/lgZBsWGaQY0&feature n’autorise pas le cadrage d’origine croisée.
En raison de cette erreur, la vidéo YouTube ne peut pas s’ouvrir en iframe.
Veuillez fournir une solution pour cette erreur.
URL d’origine dans la requête
http://www.youtube.com/v/lgZBsWGaQY0&feature
URL attendue
http://www.youtube.com/embed/lgZBsWGaQY0?autoplay=1
Les URL YouTube doivent être nettoyées et normalisées avant de les insérer dans un iframe. Voici ma bibliothèque compatible Common js que j’ai créée pour nettoyer et normaliser les URL YouTube.
var getVidId = function(url) { var vidId; if(url.indexOf("youtube.com/watch?v=") !== -1)//https://m.youtube.com/watch?v=e3S9KINoH2M { vidId = url.substr(url.indexOf("youtube.com/watch?v=") + 20); } else if(url.indexOf("youtube.com/watch/?v=") !== -1)//https://m.youtube.com/watch/?v=e3S9KINoH2M { vidId = url.substr(url.indexOf("youtube.com/watch/?v=") + 21); } else if(url.indexOf("youtu.be") !== -1) { vidId = url.substr(url.indexOf("youtu.be") + 9); } else if(url.indexOf("www.youtube.com/embed/") !== -1) { vidId = url.substr(url.indexOf("www.youtube.com/embed/") + 22); } else if(url.indexOf("?v=") !== -1)// http://m.youtube.com/?v=tbBTNCfe1Bc { vidId = url.substr(url.indexOf("?v=")+3, 11); } else { console.warn("YouTubeUrlNormalize getVidId not a youTube Video: "+url); vidId = null; } if(vidId.indexOf("&") !== -1) { vidId = vidId.substr(0, vidId.indexOf("&") ); } return vidId; }; var YouTubeUrlNormalize = function(url) { var rtn = url; if(url) { var vidId = getVidId(url); if(vidId) { rtn = "https://www.youtube.com/embed/"+vidId; } else { rtn = url; } } return rtn; }; YouTubeUrlNormalize.getThumbnail = function(url, num) { var rtn, vidId = getVidId(url); if(vidId) { if(!isNaN(num) && num <= 4 && num >= 0) { rtn = "http://img.youtube.com/vi/"+vidId+"/"+num+".jpg"; } else { rtn = "http://img.youtube.com/vi/"+getVidId(url)+"/default.jpg"; } } else { return null; } return rtn; }; YouTubeUrlNormalize.getFullImage = function(url) { var vidId = getVidId(url); if(vidId) { return "http://img.youtube.com/vi/"+vidId+"/0.jpg"; } else { return null; } }; if ( typeof exports !== "undefined" ) { module.exports = YouTubeUrlNormalize; } else if ( typeof define === "function" ) { define( function () { return YouTubeUrlNormalize; } ); } else { window.YouTubeUrlNormalize = YouTubeUrlNormalize; }
Mis à jour pour prendre en charge les URL YouTube Mobile. Par exemple: m.youtube.com Mise à jour pour obtenir également des images et protection contre les variables GET dans l’URL
Ces étapes vous feront comprendre comment cela se passe:
Vous pouvez bien voir ici que l’URL est générée par / embed qui va avec la première réponse.