Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在Rails Facebook canvas应用程序中添加链接以开始文件下载_Ruby On Rails_Ruby On Rails 3_Facebook_Download_Facebook Canvas - Fatal编程技术网

Ruby on rails 如何在Rails Facebook canvas应用程序中添加链接以开始文件下载

Ruby on rails 如何在Rails Facebook canvas应用程序中添加链接以开始文件下载,ruby-on-rails,ruby-on-rails-3,facebook,download,facebook-canvas,Ruby On Rails,Ruby On Rails 3,Facebook,Download,Facebook Canvas,在Facebook画布上运行的Rails应用程序中,我们有一个工作流,登录用户可以在其中构建文档,然后下载 当文件准备好时,我们会显示指向它的链接。这只是一个Rails操作,在生产环境中使用dev或head中的send_文件(使用正确的NGINX配置)进行渲染。这部分很好用 为了在不打开新的浏览器选项卡的情况下开始下载文件,我们将链接目标设置为空的iframe 这是可行的,但不久前,可能是由于Facebook的安全变更,我们的链接停止了工作。JavaScript错误显示: 拒绝显示文档,因为X-

在Facebook画布上运行的Rails应用程序中,我们有一个工作流,登录用户可以在其中构建文档,然后下载

当文件准备好时,我们会显示指向它的链接。这只是一个Rails操作,在生产环境中使用dev或head中的send_文件(使用正确的NGINX配置)进行渲染。这部分很好用

为了在不打开新的浏览器选项卡的情况下开始下载文件,我们将链接目标设置为空的iframe

这是可行的,但不久前,可能是由于Facebook的安全变更,我们的链接停止了工作。JavaScript错误显示:

拒绝显示文档,因为X-Frame-Options禁止显示

用户仍然可以在新选项卡中打开链接,它将下载文件,一个快速修复方法是使链接打开一个新的浏览器选项卡,但这并不是一个好的用户体验

我们尝试更改标题中的X-Frame-Options和/或使用meta标记,但这是canvas(在iframe中运行),因此停止了这些视图的显示

我也试过了,但没有任何效果(我可能做错了)


我们有没有办法创建一个按钮或链接来启动文件下载,而不打开新的浏览器选项卡?

您需要设置目标吗?如果没有设置目标,它是否不会在浏览器中触发文件下载弹出窗口,而是将当前浏览器窗口/选项卡保留在相同的内容上?

是否需要设置目标?如果没有设置目标,它不会在浏览器中触发文件下载弹出窗口,而是将当前浏览器窗口/选项卡保留在相同的内容上?

解决方案有点复杂,但这确实让我走上了正确的道路。我没有链接到下载画布页面,而是直接链接到下载路径(没有facebook画布)。然后我删除了所有安全性(只是为了测试)。当然,没有目标。现在我需要使用hash参数添加新的安全性,但这应该可以工作。谢谢。我们可以接受的一个缺点是,我们无法再确认下载文件的用户是生成文件的用户(因为安全性现在在链接本身中)。解决方案有点复杂,但这确实让我走上了正确的道路。我没有链接到下载画布页面,而是直接链接到下载路径(没有facebook画布)。然后我删除了所有安全性(只是为了测试)。当然,没有目标。现在我需要使用hash参数添加新的安全性,但这应该可以工作。谢谢。我们可以接受的一个缺点是,我们无法再确认下载文件的用户是生成文件的用户(因为安全性现在在链接本身中)。