允许对 CouchDB CouchApp 中的静态文件进行 POST

发布于 2024-11-06 07:29:25 字数 183 浏览 0 评论 0原文

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

When serving static assets from a CouchApp (e.g. HTML and JS for a Backbone.js app), a 405 Method Not Allowed error is appropriately kicked when those static pages are POSTed to. However, when developing a Facebook app for canvas/iframe, Facebook sends all requests as POSTs. Is there any way to make Couch allow the POST method?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

刘备忘录 2024-11-13 07:29:25

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

是否可以告诉 Facebook 添加自定义标头? Couch 支持 POST 请求中的 X-HTTP-Method-Override 标头。只需将其设置为您真正想要的 HTTP 方法即可。

I am pessimistic about this. I'm not sure but it may not be possible.

Is it possible to tell Facebook to add custom headers? Couch supports an X-HTTP-Method-Override header in POST requests. Just set it to the HTTP method you really wanted.

动次打次papapa 2024-11-13 07:29:25

我遇到了同样的问题,到目前为止,我能够通过简单地让 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 参数(取决于登录、图表等),但我会将其作为练习留给读者;-)

希望这会有所帮助!

I ran into the same issue, and so far I was able to avoid another hoster by simply letting CouchDB output javascript that redirects my request (so basically the client's browser).

As @JasonSmith commented, _show functions are able to receive POST methods; so I've basically created a new _show function called shows/proxy.js which (in it's most basic functionality) only includes this:

function(doc, req) {
   return "<script>document.location='TARGETURL';</script>";    
}

Replace TARGETURL with your real Canvas URL page.
Then I setup the FB Canvas URL to point to this page,

http://fbdemo.iriscouch.com/fbdemo/_design/fbdemo/_show/proxy?

This works just fine in the FB Canvas, and finally shows my CouchApp! Next step is to start passing QueryString parameters from FB (depending on login, graph, etc...), but I'll leave that as an exercise to our readers ;-)

Hope this helps!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文