반응형
X-Frame-Options에 의해 로드가 거부됨: http://www.youtube.com/v/g5RM5StrMXY 은 교차 프레임 구성을 허용하지 않습니다.
저는 ASP에 웹사이트를 가지고 있습니다.그물.
페이지 로드 후 아래 오류가 발생하고 있습니다.
오류: X-Frame-Options에 의해 로드가 거부되었습니다. http://www.youtube.com/v/lgZBsWGaQY0&feature 에서는 교차 프레임 구성을 허용하지 않습니다.
이 오류로 인해 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>
이 오류에 대한 해결책을 제공하십시오.
쿼리의 원래 URL
http://www.youtube.com/v/lgZBsWGaQY0&feature
예상 URL
http://www.youtube.com/embed/lgZBsWGaQY0?autoplay=1
iframe에 삽입하기 전에 YouTube URL을 치료하고 정규화해야 합니다.여기에 유튜브 URL을 정리하고 정상화하기 위해 만든 공통 js 호환 라이브러리가 있습니다.
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;
}
YouTube Mobile URL에 맞게 업데이트되었습니다.i: m.youtube.com 이미지도 가져오고 URL의 GET 변수로부터 보호하도록 업데이트되었습니다.
다음 단계를 통해 작업 방식을 이해할 수 있습니다.
- 유튜브 사이트를 사용하여 원하는 동영상 찾기
- 비디오 아래의 '공유' 버튼을 클릭합니다.
- 표시된 링크 옆에 있는 '포함' 버튼을 클릭합니다.
- 주어진 iframe 코드를 복사하여 웹 페이지의 html에 붙여넣습니다.
URL은 첫 번째 답변과 함께 /embed에 의해 생성된다는 것을 여기서 잘 알 수 있습니다.
언급URL : https://stackoverflow.com/questions/15272857/load-denied-by-x-frame-options-http-www-youtube-com-v-g5rm5strmxy-does-not-pe
반응형
'programing' 카테고리의 다른 글
오버플로 스크롤 CSS가 div에서 작동하지 않습니다. (0) | 2023.08.26 |
---|---|
Angular2 - Http POST 요청 매개 변수 (0) | 2023.08.26 |
함수 호출의 별표 (0) | 2023.08.06 |
내포된 함수가 외부 함수의 변수에 액세스할 수 있지만 수정할 수 없는 이유 (0) | 2023.08.06 |
Excel VBA 필터링/가시 셀 (0) | 2023.08.06 |