Charge refusée par X-Frame-Options: http://www.youtube.com/v/g5RM5StrMXY n’autorise pas le cadrage d’origine croisée

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.

entrer la description de l'image ici

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:

  1. Utilisez le site youtube pour trouver la vidéo que vous voulez
  2. Cliquez sur le bouton “Partager” sous la vidéo
  3. Cliquez sur le bouton “Intégrer” à côté du lien qu’ils vous montrent
  4. Copiez le code iframe fourni et collez-le dans le HTML de votre page Web.

entrer la description de l'image ici

Vous pouvez bien voir ici que l’URL est générée par / embed qui va avec la première réponse.