2016-04-24 14 views
4

Ich brauche Hilfe bei der Synchronisierung von PouchDB mit Couchbase Sync Gateway.Synchronisieren von PouchDB und Couchbase Sync Gateway - CORS Fehler

Ich bekomme immer den folgenden Fehler, der auf ein CORS-Problem verweist, aber ich habe Couchbase Sync Gateway (CSG) für CORS entsprechend ihrer Dokumentation konfiguriert.

XMLHttpRequest cannot load http://localhost:4985/test-database/. 
No 'Access-Control-Allow-Origin'header is present on the requested 
resource. Origin 'http://localhost:3000' is therefore not 
allowed access. 

Ich habe die folgende Konfigurationsdatei pro CSG-docs versucht:

http://developer.couchbase.com/documentation/mobile/1.2/develop/guides/sync-gateway/configuring-sync-gateway/config-properties/index.html

{ 
    "log": ["HTTP+"], 
    "CORS": { 
    "origin":["http://localhost:3000"], 
    "loginOrigin":["http://localhost:3000"], 
    "headers":["Content-Type"], 
    "maxAge": 1728000 
    }, 
    "databases": { 
    "test-database": { 
     "server": "walrus:", 
     "users": { "GUEST": {"disabled": false, "admin_channels": ["*"] } } 
    } 
    } 
} 

ich andere Konfigurationsdateien habe versucht, auch aus dem Blog Couchbase, aber keiner von ihnen Arbeit! Jede Hilfe mit diesem wird sehr geschätzt werden!

+0

Sieht aus wie der einzige Unterschied Portnummer 8k vs 3k ist ... Können Sie curl/Postbote http aufzurufen: // localhost : 3000 - um zu sehen, ob Kors Header im Ergebnis ist? Wenn ja - Problem ist mit PouchDB. Anderenfalls wurde Ihre Konfiguration irgendwie ignoriert. Ich weiß, dass Neustart/Redoing ist alberne Beratung, oder vielleicht hast du das getan. Aber nur für den Fall - können Sie das bestätigen? :) –

Antwort

4

Es sieht so aus, als ob Sie versuchen, den Sync Gateway-Admin-Port zu treffen, der CORS nicht unterstützt, soweit ich weiß. Haben Sie versucht, auf den öffentlichen Port (4984) zu zielen?

+0

Das war das Problem. Danke für Ihre Hilfe! –

+0

Mine war ich bearbeitet die falsche sync_gateway.json (meine Sicherungskopie;) – f01

-1

ist, weil Sie CORS auf CouchDB aktivieren müssen. Andernfalls können Ihre Skripts nur auf die Server-Datenbank zugreifen, wenn sie vom selben Ursprung stammen - das Protokoll (z. B. http: //, https: //), die Domäne und die Port-Nummer müssen übereinstimmen.

Sie können CORS in CouchDB mit curl oder dem Futon-Webinterface aktivieren, aber wir haben Ihnen etwas Zeit gespart, indem Sie ein Node-Skript namens add-cors-to-couchdb erstellt haben. Führen Sie einfach:

npm install -g add-cors-to-couchdb 
add-cors-to-couchdb 

für weitere Informationen finden Sie auf den Link
https://pouchdb.com/errors.html#no_access_control_allow_origin_header