2015-05-11 33 views
1
启用CORS

我已经在CouchDB中启用CORS: enter image description hereCORS错误PouchDB与CouchDB中

enter image description here

我在Windows上运行8.1的应用程序,与hapi.js.为它服务

当出现在控制台此错误消息一段时间后在浏览器查看它:

Uncaught (in promise) CustomPouchError {status: 500, name: "unknown_error", message: "Database encountered an unknown error", error: true, toString: function} 

火狐将中止访问的CouchDB,例如: http://127.0.0.1:5984/user_z_at_z_p_ch/?_nonce=1431328831527, 然后报告一个跨源请求被阻塞。

我试图运行Add-CORS对CouchDB的,但我得到这个错误:

PS C:\Users\alex> add-cors-to-couchdb 
events.js:85 
     throw er; // Unhandled 'error' event 
     ^
Error: read ECONNRESET 
    at exports._errnoException (util.js:746:11) 
    at TCP.onread (net.js:559:26) 

回答

0

看来,我错过了在CouchDB中的config.ini的CORS节一个标题:x-csrf-token

CORS现在与这些标题:

accept, authorization, content-type, origin, referer, x-csrf-token 

我不知道为什么会这样,但嘿:它的作品

+2

原因是浏览器拒绝执行由JS代码启动的请求,至少有一个请求头是不在CORS配置中。您可以在浏览器中调试浏览器之前执行的前HEAD请求。每个提到的头文件都必须在CORS配置中。就像之前的一个简单问题:“亲爱的服务器!你能让我发送这样的请求吗?”如果答案是“不!”浏览器不会请求 - 您立即收到错误消息。 –

+0

@llabball谢谢! – Alex

1

你CORS设置看起来是正确的。您确定您的CouchDB可从您使用的主机名/端口进行外部访问吗?

如果add-cors-to-couchdb失败,这是因为默认的CouchDB localhost:5984无法访问。它具有在另一个URL中指定CouchDB的选项。

+0

这很奇怪,因为蒲团在http:// localhost:5984/_utils/index.html和fauxton上完美工作。另外:curl http:// localhost:5984 /返回状态200 – Alex

+0

嗯,如果curl正在工作,那么你可以使用替代卷曲方法:https://github.com/pouchdb/add-cors-to-couchdb#什么它 – nlawson

+0

好,在窗户上卷曲......我放弃了做任何比基本命令更复杂的任何事 – Alex