2010-07-23 31 views

Trả lời

10

Không, hiện tại bạn không thể thực hiện việc này. REST API của CouchDB yêu cầu một yêu cầu POST hoặc PUT để chèn dữ liệu, nhưng JSONP chỉ hỗ trợ các yêu cầu GET. Vì vậy, bạn có thể truy xuất dữ liệu từ CouchDB trên các tên miền, nhưng các cập nhật/chèn/xóa sẽ không hoạt động.

8

Bạn có thể sử dụng javascript phía máy khách để tạo biểu mẫu để thực hiện POST, chuyển đầu ra tới khung nội tuyến và sử dụng thông báo iframe cửa sổ chéo để nhận kết quả.

Tất nhiên, ai đó đã tạo một thư viện javascript đẹp để thực hiện việc này. Nhận mã tại đây: https://github.com/benvinegar/couchdb-xd

Làm theo hướng dẫn để đẩy nó làm cơ sở dữ liệu bổ sung trên máy chủ couchdb của bạn. Sau đó, trên trang web bất kỳ, bao gồm một không có trong 'bạn-văng-server' miền, bạn có thể làm như sau (chỉ cần thử nó trong giao diện điều khiển javascript):

jQuery.getScript(
    "http://YOUR-COUCH-SERVER/couchdb-xd/_design/couchdb-xd/couchdb.js", 
    function() { 
     Couch.init(
      function() { 
       var s = new Couch.Server('http://YOUR-COUCH-SERVER/'); 
       var d = new Couch.Database(s,'YOURDB'); 
       d.put(
        "stackoverflow-test 1", 
        { foo: 111, bar: 222 }, 
        function(resp) { 
         console.log(resp);   
        } 
       ); 
      } 
     ) 
    } 
); 

Ở trên giả định bạn có jquery là đã được tải trên trang. Nếu không, bạn sẽ cần phải thêm nó, tuy nhiên bạn hiện đang tương tác với trang khác.

Thư viện chỉ hoạt động trên các trình duyệt hiện đại với hỗ trợ window.postMessage(), mặc dù một bản vá nhỏ cuối cùng có thể cho phép các trình duyệt cũ sử dụng nó thông qua giao tiếp src/băm.

Các vấn đề liên quan