Html 在Cloudfront的页面上托管Facebook iFrame
由于Facebook最近表示他们在页面中支持iframe,我已经将我的Facebook页面切换为拉iframe。由于您需要在Facebook之外托管iframe页面,因此我认为使用Cloudfront托管文件(一个HTML页面、一个CSS样式表和一个jpg图像)会很好。不幸的是,尽管将Cloudfront文件的权限设置为744(浏览器中的iframe页面),但当从Facebook调用时,我得到了 当我在Media Temple服务器上托管相同的文件时,实际Facebook页面上的iframe也会出现Html 在Cloudfront的页面上托管Facebook iFrame,html,facebook,iframe,amazon-cloudfront,Html,Facebook,Iframe,Amazon Cloudfront,由于Facebook最近表示他们在页面中支持iframe,我已经将我的Facebook页面切换为拉iframe。由于您需要在Facebook之外托管iframe页面,因此我认为使用Cloudfront托管文件(一个HTML页面、一个CSS样式表和一个jpg图像)会很好。不幸的是,尽管将Cloudfront文件的权限设置为744(浏览器中的iframe页面),但当从Facebook调用时,我得到了 当我在Media Temple服务器上托管相同的文件时,实际Facebook页面上的iframe也会
Facebook和Cloudfront不合作有什么原因吗?到目前为止,我还没有找到一个。好的,可以这样做:但是你需要在Cloudfront上托管图像,在S3上托管其余内容。亚马逊提供了一套关于如何做到这一点的指南。问题已解决。不幸的是,Facebook使用HTTP POST而不是HTTP GET加载iframe页面,并且不兼容,因为Amazon有REST接口,并正确使用POST上载/修改内容 最好的
David Bullock使用Cloudfront捕获405错误,并将html作为“自定义错误响应”页面提供给所需的索引页面 更新: 这被否决了,但是我将在以下方面帮助很多Facebook开发者。我们在S3上托管facebook应用程序的最后一个问题是CORS。我们通过执行“自定义错误响应”修复了405。有关详细信息,请参阅此链接:
我今天遇到了这个问题,它导致了一些磁头断裂。正如David Bullock指出的那样,问题在于Facebook通过
POST
请求加载HTML页面,但S3(因此通过扩展CloudFront)不会响应此请求提供资源(它返回405方法不允许
)
您可以在S3/CloudFront上托管CSS、脚本和图像,但初始HTML页面必须位于其他服务器上。如果您担心来自全球的负载或延迟,那么您可以尝试实现一个微型重定向器,将FacebookPOST
请求转发到CloudFront缓存位置(您必须返回303查看其他
才能执行此重定向,因此浏览器会发出GET
请求:请参阅).对于AWS拒绝POST请求以及Facebook要求页面标签通过HTTPS托管的事实,有一个非常简单的解决方法:只需通过……重定向请求即可
是的,真的很简单
Boom:完成。好的,可以完成:但是您需要在Cloudfront上托管图像,在S3上托管其余内容。亚马逊提供了一套关于如何做到这一点的指南。问题已解决。不,通过cloudfront托管所有内容也应该有效。你想放在iframe中的页面的url是什么?实际上,使用S3向Facebook iframe提供内容似乎仍然存在问题:如果索引html页面托管在S3上,我会收到以下错误消息:。javascript文件和图像可以托管在Cloudfront上(它们现在位于该页面上)但是html不能从任何一个主机托管,而且出于某种原因css也不能从任何一个主机托管。我怀疑html问题是由Facebook引起的,但css问题很奇怪。S3上承载的内容(与Media Temple上的内容相同)在通过Facebook iframe查看时生成错误消息,如果您直接查看,则加载时不会出现问题: