Php vimeo/youtube等如何在iFrame中获取推荐人URL?

Php vimeo/youtube等如何在iFrame中获取推荐人URL?,php,javascript,referrer,postmessage,Php,Javascript,Referrer,Postmessage,对这个问题的大量答案和问题感到困惑 现在,我接受安全JS的情况,不允许从iFrame到容器窗口/页面的跨域访问,但是片段标识符或postMessage API的许多文章中引用的理想解决方案确实令人困惑 我想做的是复制vimeo似乎已经成功的东西;他们的新iframe嵌入代码 <iframe src="http://player.vimeo.com/video/17263117" width="400" height="225" frameborder="0"></iframe&

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

现在,我接受安全JS的情况,不允许从iFrame到容器窗口/页面的跨域访问,但是片段标识符postMessage API的许多文章中引用的理想解决方案确实令人困惑

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

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

使用并且似乎能够从父加载页面在iframe的源中填写一个referer url。例如,在页面中插入www.aduck.com/myvideo.html。通常,对于JS上的安全块,这在简单的parent.location.href中是不可能的。所以,我调查了一下,并一直在进行一场真正的疯狂追逐,寻找如何做到这一点


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

它根本不需要从
源代码获取(正如您已经注意到的,安全限制阻止了这一点),它作为头传递给服务器,并由服务器在页面中呈现,以便JavaScript使用,请查看页面中定义的
选项
变量


让我们举一个例子:

如果你看一下请求

您将看到推荐人通过:

Referer: http://fiddle.jshell.net/nick_craver/FfuPk/show/light/
在iframe加载的页面中的脚本块中,您将看到:

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

这就是它获取引用的方式,最终是从浏览器发送到服务器的标题中获取引用。

它根本不需要从
源中获取引用(正如您已经注意到的,安全限制阻止了这一点),它作为标题传递到服务器,并由服务器在页面中呈现,供JavaScript使用,查看页面中定义的
选项
变量


让我们举一个例子:

如果你看一下请求

您将看到推荐人通过:

Referer: http://fiddle.jshell.net/nick_craver/FfuPk/show/light/
在iframe加载的页面中的脚本块中,您将看到:

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

这就是它获取推荐人的方式,最终是从浏览器发送到服务器的头中获取推荐人。

你是说使用HTTP\U推荐人吗?你总是听说这对现代浏览器来说是多么不可行,不是吗?
HTTP\u REFERER
上的@wiseaddle-Yes只是把它缩短了。我从来没有说过他们的实现是可靠的,只是它是如何工作的:)如果你有什么办法阻止发送Referer头…他们的实现肯定会失败,但这是唯一可能得到他们想要的东西的方法。你是说使用HTTP\u Referer吗?你总是听说这对现代浏览器来说是多么不可行,不是吗?
HTTP\u REFERER
上的@wiseaddle-Yes只是把它缩短了。我从来没有说过他们的实现是可靠的,只是它是如何工作的:)如果你有任何措施阻止发送推荐人头…他们的实现肯定会失败,但这是唯一可能得到他们想要的东西的方法。