CouchApp から静的アセット (Backbone.js アプリの HTML と JS など) を提供する場合、それらの静的ページが POST されると、405 Method Not Allowed エラーが適切に発生します。ただし、canvas/iframe 用の Facebook アプリを開発する場合、Facebook はすべてのリクエストを POST として送信します。Couch で POST メソッドを許可する方法はありますか?
2 に答える
私はこれについて悲観的です。よくわかりませんが、無理かもしれません。
Facebook にカスタム ヘッダーを追加するように指示することはできますか? Couch は、X-HTTP-Method-Override
POST リクエストのヘッダーをサポートしています。本当に必要な HTTP メソッドに設定するだけです。
私は同じ問題に遭遇しましたが、これまでのところ、CouchDB にリクエストをリダイレクトする javascript を出力させるだけで (基本的にはクライアントのブラウザー)、別のホスティング業者を回避することができました。
@JasonSmith がコメントしたように、_show 関数は POST メソッドを受け取ることができます。だから私は基本的に、shows/proxy.js と呼ばれる新しい _show 関数を作成しました。
function(doc, req) {
return "<script>document.location='TARGETURL';</script>";
}
TARGETURL を実際の Canvas URL ページに置き換えます。次に、このページを指すように FB キャンバスの URL を設定します。
http://fbdemo.iriscouch.com/fbdemo/_design/fbdemo/_show/proxy?
これは FB キャンバスで問題なく動作し、最終的に私の CouchApp が表示されます! 次のステップは、FB から QueryString パラメータを渡し始めることです (ログイン、グラフなどに応じて...)。
お役に立てれば!