2010-07-23 5 views

Répondre

10

Non, vous ne pouvez pas le faire actuellement. L'API REST de CouchDB nécessite une requête POST ou PUT pour insérer des données, mais JSONP ne prend en charge que les requêtes GET. Ainsi, vous pouvez récupérer données de CouchDB à travers des domaines, mais les mises à jour/insertions/suppressions ne fonctionnera pas.

8

Vous pouvez utiliser le javascript côté client pour créer un formulaire pour effectuer le POST, diriger la sortie vers un iframe et utiliser la messagerie IFR avec une fenêtre croisée pour obtenir le résultat.

Bien sûr, quelqu'un a déjà fait une belle bibliothèque javascript pour le faire. Obtenez le code ici: https://github.com/benvinegar/couchdb-xd

Suivez les instructions pour le pousser en tant que base de données supplémentaire sur votre serveur couchdb. Puis, sur un site, y compris un pas dans le domaine « serveur votre-lit », vous pouvez faire ce qui suit (essayez juste dans la console 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);   
        } 
       ); 
      } 
     ) 
    } 
); 

Le ci-dessus suppose que vous avez jquery est déjà chargé sur la page. Sinon, vous devrez l'ajouter, mais vous interagissez actuellement avec l'autre page.

La bibliothèque ne fonctionne que sur les navigateurs modernes avec le soutien window.postMessage(), mais un petit patch peut éventuellement permettre à des navigateurs plus anciens à l'utiliser via une communication src/hachage.