2013-03-07 3 views
38

Ich habe eine Website in ASP.NET.Load verweigert von X-Frame-Optionen: http://www.youtube.com/v/g5RM5StrMXY lässt Cross-Origin-Framing nicht zu

Nach dem Laden der Seite, bekomme ich unter Fehler.

Fehler: Load verweigert durch X-Frame-Optionen: http://www.youtube.com/v/lgZBsWGaQY0&feature lässt keine Cross-Origin-Framing zu.

enter image description here

Aufgrund dieses Fehlers ist Youtube Video in iframe öffnen nicht in der Lage.

<div style="display: none; position: relative;"> 
    <div id="divYouTubeClasses"> 
     <iframe id="Iframe1" style="background-color: White !important; border: 0;" width="835" 
        height="430" src="http://www.youtube.com/v/g5RM5StrMXY" scrolling="no"></iframe> 
    </div> 
</div> 

Bitte geben Sie eine Lösung für diesen Fehler an.

Antwort

82

Original-URL in Query

http://www.youtube.com/v/lgZBsWGaQY0&feature 

Erwartete URL

http://www.youtube.com/embed/lgZBsWGaQY0?autoplay=1 
+5

ja sollte die eingebettete Version anstelle der direkten URL verwenden –

+0

Können Sie erklären, warum dieser einfache Trick den Unterschied macht? :) –

4

YouTube Urls müssen, bevor sie in einem Iframe Einsetzen gereinigt und normalisiert werden. Hier ist meine Common js-kompatible Bibliothek, die ich erstellt habe, um YouTube-URLs zu bereinigen und zu normalisieren.

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; 
} 

Aktualisiert für YouTube Mobile URLs. dh: m.youtube.com aktualisiert Bilder zu erhalten als auch, und schützen gegen GET Vars in der URL

0

Diese Schritte werden Sie verstehen, wie es gemacht wird:

  1. Über die YouTube-Website zu finden das Video Sie
  2. die ‚Share‘ Taste unterhalb der Schaltfläche auf den Link neben
  3. Klicken Sie auf den ‚Einbetten‘ Video klicken Sie zeigen Sie
  4. Kopieren Sie die iframe-Code gegeben und in den hTML-Code Ihrer Web-Paste Seite.

enter image description here

Sie können hier gut sehen, dass die URL von /embed erzeugt wird, die mit dem ersten ansewer geht.

Verwandte Themen