Подтвердить что ты не робот

Недопустимая загрузка с помощью X-Frame-Options: http://www.youtube.com/v/g5RM5StrMXY не разрешает создание кросс-фреймов

У меня есть сайт в ASP.NET.

После загрузки страницы я становлюсь ниже ошибки.

Ошибка: Load denied by X-Frame-Options: http://www.youtube.com/v/lgZBsWGaQY0&feature не разрешает кадрирование с перекрестным контуром.

enter image description here

Из-за этой ошибки, youtube видео не может открываться в iframe.

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

Пожалуйста, предоставьте некоторое решение этой ошибки.

4b9b3361

Ответ 1

Исходный URL-адрес в запросе

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

Ожидаемый URL

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

Ответ 2

URL-адреса YouTube должны быть очищены и нормализованы, прежде чем вставлять их в iframe. Вот моя Common js-совместимая библиотека, которую я создал для очистки и нормализации 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;
}

Обновлен для размещения URL-адресов YouTube Mobile. т.е.: m.youtube.com Обновлено, чтобы получить изображения, а также защитить от GET vars в URL

Ответ 3

Эти шаги помогут вам понять, как это делается:

  • Используйте сайт youtube, чтобы найти нужное видео.
  • Нажмите кнопку "Поделиться" под видео
  • Нажмите кнопку "Вставить" рядом со ссылкой, которую они показывают вам.
  • Скопируйте код iframe и вставьте его в html вашей сети. стр.

введите описание изображения здесь

Здесь вы можете видеть, что URL-адрес генерируется /embed, который идет с первым ansewer.