当从 CouchApp 提供静态资产时(例如,Backbone.js 应用程序的 HTML 和 JS),当这些静态页面被发布到时,会适当地触发 405 Method Not Allowed 错误。但是,在为 canvas/iframe 开发 Facebook 应用程序时,Facebook 将所有请求作为 POST 发送。有没有办法让 Couch 允许 POST 方法?
问问题
247 次
2 回答
0
我对此持悲观态度。我不确定,但这可能是不可能的。
是否可以告诉 Facebook 添加自定义标题?Couch 支持X-HTTP-Method-Override
POST 请求中的标头。只需将其设置为您真正想要的 HTTP 方法即可。
于 2011-05-17T01:46:18.440 回答
0
我遇到了同样的问题,到目前为止,我能够通过简单地让 CouchDB 输出重定向我的请求的 JavaScript(基本上是客户端的浏览器)来避免另一个主机。
正如@JasonSmith 评论的那样, _show 函数能够接收 POST 方法;所以我基本上创建了一个名为 shows/proxy.js 的新 _show 函数,它(在它的最基本功能中)只包括以下内容:
function(doc, req) {
return "<script>document.location='TARGETURL';</script>";
}
将 TARGETURL 替换为您的真实 Canvas URL 页面。然后我设置 FB Canvas URL 指向这个页面,
http://fbdemo.iriscouch.com/fbdemo/_design/fbdemo/_show/proxy?
这在 FB Canvas 中工作得很好,最后显示了我的 CouchApp!下一步是开始从 FB 传递 QueryString 参数(取决于登录名、图形等),但我将把它作为练习留给我们的读者 ;-)
希望这可以帮助!
于 2011-12-19T12:01:23.393 回答