Javascript 拒绝显示';http://vimeo.com/27577981' 在帧中,因为它设置为';X-Frame-Options';至';SAMEORIGIN';
我试图在嵌入标记中嵌入视频,但出现以下错误:Javascript 拒绝显示';http://vimeo.com/27577981' 在帧中,因为它设置为';X-Frame-Options';至';SAMEORIGIN';,javascript,video,embed,Javascript,Video,Embed,我试图在嵌入标记中嵌入视频,但出现以下错误: Refused to display 'http://vimeo.com/27577981' in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'. youtube链接: 当我用embed/替换watch?v=时,它运行良好。但没有必要让视频出现在youtube上。因此,我需要一个独特的解决方案。正如错误消息所说,您不能将该页面嵌入到框架中。维梅奥。接着说 {页眉} 发生这种情况是
Refused to display 'http://vimeo.com/27577981' in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'.
youtube链接:
当我用embed/替换watch?v=时,它运行良好。但没有必要让视频出现在youtube上。因此,我需要一个独特的解决方案。正如错误消息所说,您不能将该页面嵌入到框架中。维梅奥。接着说
{页眉}
发生这种情况是因为iframe中的网站正在将X-Frame-Options标题设置为:SAMEORIGIN
实现这一点的唯一方法是让网站不设置标题,或者更改uri中的允许值
这就是为什么您需要遵循Vimeo说明才能使其工作,但显然每个站点都必须独立处理
此策略是一种安全措施,可避免点击劫持。您可以在此处查看更多信息:我也有类似的问题
解决方案:
简而言之(目前),嵌入url是:
//player.vimeo.com/video/
而不是:
//vimeo.com/27577981
例如:
<iframe src="//player.vimeo.com/video/27577981?portrait=0" class="ivid" width="500" height="281" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>
但正如昆廷所说,请查看vimeo文档:Ruby字符串操作以获得基于@Picard和@basarat的功能链接(2020.09.01): Youtube示例:
raw_video_link = 'https://www.youtube.com/watch?v=5qap5aO4i9A&ab_channel=ChilledCow'
video_link = 'https://www.youtube.com/embed/' + raw_video_link.split('=')[1].split('&')[0]
raw_video_link = 'https://www.youtube.com/watch?v=dQw4w9WgXcQ'.split('/')
insert_player_link = raw_video_link[2].split('.').unshift('player').join('.')
raw_video_link.delete_at(2)
raw_video_link.insert(2, insert_player_link)
raw_video_link.insert(3, 'video')
video_link = raw_video_link.join('/')
Vimeo示例:
raw_video_link = 'https://www.youtube.com/watch?v=5qap5aO4i9A&ab_channel=ChilledCow'
video_link = 'https://www.youtube.com/embed/' + raw_video_link.split('=')[1].split('&')[0]
raw_video_link = 'https://www.youtube.com/watch?v=dQw4w9WgXcQ'.split('/')
insert_player_link = raw_video_link[2].split('.').unshift('player').join('.')
raw_video_link.delete_at(2)
raw_video_link.insert(2, insert_player_link)
raw_video_link.insert(3, 'video')
video_link = raw_video_link.join('/')
请随意重构 但这是上述URL的具体解决方案。在我的场景中,URL可以是任何公共视频URL。在这种情况下,可能的解决方案是什么您从URL获取视频id,并将其转换为嵌入规则接受的格式。运行视频的嵌入规则是什么。我不熟悉HTML,sp帮助我找到这个解决方案。没有神奇的方法可以找到一个可以接受的方法来嵌入任意URL。您需要根据具体情况处理每个视频提供商。在这种情况下,了解Vimeo停止允许通过类似//Vimeo.com/84831861的地址进行嵌入,现在坚持采用//player.Vimeo.com/video/84831861的格式是很有帮助的