2010-08-02 93 views
5

我遇到了AJAX,CouchDB和JavaScript的一個小問題。連接AJAX,CouchDB和JavaScript

我可以在瀏覽器中打開從CouchDB的以下網址:http://192.168.1.58:5984/mydb/name

new Ajax.Request('http://192.168.1.58:5984/mydb/namee', { 
    method: 'POST', 
    onComplete: function(transport) { 
    alert(transport.responseText); 
    } 
}); 

我總是空的警報。

你能幫我嗎?

回答

3

AJAX不支持跨域腳本編寫。所有調用都需要使用與當前文檔相同的域名。 一個很好的解決方案是在服務器端建立一個代理服務,這需要本地 請求,對couchDB服務器進行HTTP調用,並返回它的響應。

5

這裏的問題在於,您的瀏覽器不允許您在其他Web服務器上進行查詢,而不是在腳本所在的位置進行查詢。 (Google for:同源策略)

但是有一種常見的技術是這種用例的解決方法。它被稱爲JSONP。從1.0版開始,您必須先在CouchDB中激活此功能。在您的CouchDB配置文件的部分[httpd的(.INI),你必須添加一個

allow_jsonp =真

完成上述操作後,你可以製作你的CouchDB的JSONP查詢。基本上像這樣動態添加線條:

<script type="text/javascript" 
    src="http://server2.example.com/getjson?callback=parseResponse"> 
</script> 

但有關詳細信息,請參閱上面鏈接的文章。

無論如何,我建議在JavaScript的一面使用框架作爲jQuery,DojoToolKit等。在jQuery中,例如添加「?callback =?」就足夠了在URL的末尾。

+0

謝謝。這工作!順便說一下,我的couchdb由iriscouchcom託管 – edt 2011-06-29 04:17:34