2010-07-23 14 views
7

के साथ couchdb में डेटा जोड़ें क्या कोई अन्य तरीका है जो किसी अन्य डोमेन पर चलने वाले सोफेडब में डेटा जोड़ता है और प्रतिक्रिया वापस लेता है कि ऑपरेशन सफलतापूर्वक था या नहीं? मुझे पता है कि couchdb jsonp कॉलबैक का समर्थन करता है लेकिन क्या मैं इस दृष्टिकोण के साथ डेटा जोड़ सकता हूं?jsonp प्रतिक्रिया

उत्तर

10

नहीं, आप वर्तमान में ऐसा नहीं कर सकते हैं। डेटा डालने के लिए कॉच डीबी के आरईएसटी एपीआई को पोस्ट या पुट अनुरोध की आवश्यकता होती है, लेकिन जेएसओएनपी केवल जीईटी अनुरोधों का समर्थन करता है। तो आप डोमेन पर CouchDB से डेटा पुनर्प्राप्त कर सकते हैं, लेकिन अपडेट/आवेषण/हटाना काम नहीं करेगा।

8

आप पोस्ट करने के लिए फॉर्म बनाने के लिए क्लाइंट-साइड जावास्क्रिप्ट का उपयोग कर सकते हैं, आउटपुट को आईफ्रेम पर निर्देशित कर सकते हैं, और परिणाम प्राप्त करने के लिए क्रॉस-विंडो आईफ्रेम मैसेजिंग का उपयोग कर सकते हैं।

बेशक, किसी ने इसे करने के लिए पहले ही एक अच्छी जावास्क्रिप्ट लाइब्रेरी बनाई है। यहां कोड प्राप्त करें: https://github.com/benvinegar/couchdb-xd

इसे अपने couchdb सर्वर पर अतिरिक्त डेटाबेस के रूप में धक्का देने के लिए निर्देशों का पालन करें।

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);   
        } 
       ); 
      } 
     ) 
    } 
); 

ऊपर मान लिया जाता है आप jQuery पहले से ही है: तो फिर, किसी भी साइट पर, एक नहीं 'अपने सोफे-सर्वर' डोमेन, आपको निम्न (बस JavaScript कंसोल में यह कोशिश) कर सकते हैं शामिल पेज पर लोड किया गया। यदि नहीं, तो आपको इसे जोड़ना होगा हालांकि आप वर्तमान में दूसरे पृष्ठ से बातचीत कर रहे हैं।

लाइब्रेरी केवल window.postMessage() समर्थन के साथ आधुनिक ब्राउज़र पर काम करती है, हालांकि एक छोटा पैच अंततः पुराने ब्राउज़र को src/hash संचार के माध्यम से इसका उपयोग करने की अनुमति दे सकता है।

संबंधित मुद्दे