php - vimeo/youtube 等如何在其 iframe 中获取引荐来源网址?

标签 php javascript referrer postmessage

对这个主题的大量答案和问题感到困惑。

现在,我接受了不允许从 iFrame 跨域访问容器窗口/页面的安全 JS 情况,但在Fragment IdentiferspostMessage API 真是莫名其妙。

我想做的是复制 vimeo 似乎已经成功的东西;他们新的 iframe 嵌入代码

<iframe src="http://player.vimeo.com/video/17263117" width="400" height="225" frameborder="0"></iframe>

使用http://a.vimeocdn.com/js/player_combined.opt.js?8ba54并且似乎能够在父加载页面的 iframe 源中填写引荐来源网址。 IE。 www.donkey.com/myvideo.html 被插入到 http://player.vimeo.com/video/17263117 中页。通常,对于 JS 上的安全 block ,这对于简单的 parent.location.href 是不可能的。因此,我对其进行了调查,并一直在真正疯狂地追逐这只鹅,以找出如何做到这一点。

我试图理解他们的 JS 并尝试使用 postMessage API,但没有任何东西可以展示。非常欢迎任何指导。

最佳答案

它不需要从 <iframe> 中获取它根本没有源(安全限制阻止了这种情况,正如您已经注意到的那样),它作为 header 传递给服务器,并由他们的服务器在页面中呈现以供 JavaScript 使用,请查看 options页面中定义的变量。


让我们在这里举个例子:http://www.jsfiddle.net/nick_craver/FfuPk/

如果您查看对 http://player.vimeo.com/video/17263117 的请求,

您会看到引荐来源网址已通过:

Referer: http://fiddle.jshell.net/nick_craver/FfuPk/show/light/

在 iframe 加载的页面的脚本 block 中,您将看到:

var options = {config: {
               //....
               "referrer":"http:\/\/fiddle.jshell.net\/nick_craver\/FfuPk\/show\/light\/"
               //....
              };

所以这就是它是如何获取引荐来源网址的,最终是从您的浏览器发送到服务器的 header 。

关于php - vimeo/youtube 等如何在其 iframe 中获取引荐来源网址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4314635/

相关文章:

php - 从数据库中对用户进行分组

javascript - 让 Vue 解释以编程方式插入的组件

PHP 通过 file_get_contents 获取调用你的脚本的站点

php - 使用 preg_match 检查字符串是否仅包含 A-Z、a-z 和 -(破折号)字符

php - 从 PHP 5.5 升级到 5.6 后,cURL 文件上传不再有效

javascript - 我无法使用 jquery 将 html 文本框值传递给 web 服务

javascript - 创建主数组的修改属性的新数组

asp.net - 当页面为 HTTPS 时,URLReferrer 为 null

http - 没有推荐人的请求最常见的原因是什么?

php - 如何在 PHP 中重用 selenium session ?