拒绝显示'http://vimeo.com/27577981'在帧中,因为它设置了'X-Fram

Refused to display 'http://vimeo.com/27577981' in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'

本文关键字:因为 X-Fram 设置 com http 显示 vimeo 27577981 拒绝      更新时间:2023-09-26

我正试图在嵌入标签中嵌入视频,但我收到了这个错误:

Refused to display 'http://vimeo.com/27577981' in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'.

对于youtube链接:http://www.youtube.com/watch?v=zBEYR69o2Ao我什么时候换手表?v=使用embed/,运行良好。但视频没有必要是youtube的。所以我想要一个独特的解决方案。

我遇到了类似的问题
解决方案:
简而言之(目前)嵌入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文件:http://developer.vimeo.com/player/embedding

正如错误消息所说,您不能将该页面嵌入到框架中。Vimeo提供了关于如何嵌入播放器的文档。按照这个。

<html>
<head>
  <title>{page_title}</title>
</head>
<body>
  <iframe src="https://player.vimeo.com/video/{video_id}" width="{video_width}" height="{video_height}" frameborder="0" title="{video_title}" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>
</body>
</html>

这是由于iframe中的网站将X-Frame-Options标头设置为:SAMEORIGIN

使这项工作的唯一方法是让网站要么不设置标题,要么将值更改为ALLOW-FROM您的uri

这就是为什么你需要遵循Vimeo的说明来让它发挥作用,但显然每个网站都必须独立处理。

此策略是避免点击劫持的安全措施。您可以在此处查看更多信息:https://developer.mozilla.org/en-US/docs/Web/HTTP/X-Frame-Options

Ruby字符串操作以获得基于@Picard的功能链接(2020.09.01)https://stackoverflow.com/a/27039766/12839228和@basarathttps://stackoverflow.com/a/51976196/12839228:

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]

Vimeo示例:

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('/')

随意重构!

相关文章: