我有一个 codeigniter 应用程序,效果很好。我创建了一个 facebook 画布应用程序,并尝试加载由 codeigniter 生成的页面。它没有用。我看到了可怕的——“你要求的行动是不允许的”。只是为了确保我的 facebook 应用程序设置正确,我尝试使用来自另一个站点的页面,并且它有效。
所以开始搜索可能的问题,我可以弄清楚这是因为cornfig设置中的CSRF protection = TRUE。所以我只是关闭了 CSRF 保护,看看是否可行。然后,它起作用了,我实际上可以通过 Facebook Canvas 应用程序加载 codeigniter 生成的页面(虽然是沙盒模式..)
一些人建议如果我们为 csrf 令牌硬编码隐藏字段(而不是依赖于 form_open() 函数)我们可以避免这个规则,并且按照这个逻辑,如果我们有一个根本没有表单的页面,应该可以正常工作。而且我什至无法加载没有表单的页面。
而且我没有在任何地方使用 AJAX。
我正在使用 CI 2.1.3。
一个相关链接 - http://ellislab.com/forums/viewthread/228160/#1038448 虽然 Stackoverflow 和其他论坛上有很多类似的问题,但我找不到满意的答案。
如果我只看到 apache 日志,我真的不觉得关闭 CSRF 保护是个好主意。
那么如何在不关闭 CSRF 保护的情况下使 codeignter 生成的页面出现在 facebook canvas 应用程序中?
任何指针都会很有用。谢谢你的时间。