1

当从 CouchApp 提供静态资产时(例如,Backbone.js 应用程序的 HTML 和 JS),当这些静态页面被发布到时,会适当地触发 405 Method Not Allowed 错误。但是,在为 canvas/iframe 开发 Facebook 应用程序时,Facebook 将所有请求作为 POST 发送。有没有办法让 Couch 允许 POST 方法?

4

2 回答 2

0

我对此持悲观态度。我不确定,但这可能是不可能的。

是否可以告诉 Facebook 添加自定义标题?Couch 支持X-HTTP-Method-OverridePOST 请求中的标头。只需将其设置为您真正想要的 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 回答