2016-08-12 59 views
0

使用CouchDB,我試圖與某些第三方服務集成。我一直在使用更新處理程序,所以我可以記錄對數據庫的響應。使用GET的couchdb更新處理程序

不幸的是,在一種情況下,我可以指定返回URL,但我無法指定method,並且方法始終爲GET

{ 
    error: "method_not_allowed", 
    reason: "Update functions do not allow GET" 
} 

是否有人知道解決方法?有我可以使用的另一個處理程序?其他人似乎都不允許撰寫文件。

我已閱讀本

https://lbl.io/post/url-shortening-with-couchdb

我希望避免創建代理,而我使用的是託管服務(smileupps)所以沒有自定義。

回答

0

假設它通過瀏覽器,可以使用一些JavaScript和HTML。這不處理任何案件(例如)使用非JavaScript/HTML支持客戶

設置你的rewrites

{ 
    "from": "/endpoint", 
    "to": "proxy.html", 
    "method": "GET", 
    "query": {} 
}, 
{ 
    "from": "/endpoint", 
    "to": "_update/endpoint", 
    "method": "*", 
    "query": {} 
} 

proxy.html

<html> 
<body> 
<form method='POST'></form> 
<script> 
var form = document.getElementsByTagName("form")[0]; 
form.setAttribute("action", window.location); 
form.submit(); 
</script> 
</body> 
</html> 

會發生什麼事是通知發送到endpoint將其發送給代理。代理使用完全相同的URL和POST來生成表單。發佈版本被重寫到更新處理程序。

+0

該解決方案讓我感覺很髒。 –