Javascript Couchdb-cors问题
我正在尝试使用Javascript Couchdb-cors问题,javascript,jquery,ember.js,couchdb,cors,Javascript,Jquery,Ember.js,Couchdb,Cors,我正在尝试使用jquery.coach.js在我的ember.js应用程序中执行coach操作,但我遇到了cors问题,我不知道什么是好的解决方案 在我看来,在端口5984上运行的沙发会使它基本上无法使用吗?为什么对不同端口的请求会导致cors问题?还有,其他人到底是如何在沙发上工作的呢?我非常困惑,不知道如何继续 我的coach实例从curl返回此值: {"couchdb":"Welcome","version":"1.2.0"} 我尝试运行失败的代码如下: $.couch.urlPrefi
jquery.coach.js
在我的ember.js
应用程序中执行coach操作,但我遇到了cors问题,我不知道什么是好的解决方案
在我看来,在端口5984上运行的沙发会使它基本上无法使用吗?为什么对不同端口的请求会导致cors问题?还有,其他人到底是如何在沙发上工作的呢?我非常困惑,不知道如何继续
我的coach实例从curl
返回此值:
{"couchdb":"Welcome","version":"1.2.0"}
我尝试运行失败的代码如下:
$.couch.urlPrefix = "http://127.0.0.1:5984";
$.couch.login({
name: 'name',
password: 'secret'
});
我已经多次修改了urlpeffix
部分,比如localhost
,并删除了这两个版本的http://
它抛出的错误:
XMLHttpRequest cannot load http://127.0.0.1:5984/_session. Origin http://localhost is not allowed by Access-Control-Allow-Origin.
救救我!我谦虚地承认我这样说是没有必要的,但是如果couchdb被构建到基本功能中,它又如何有用呢
哦,我把jquery.coach.js包括在内,就像这样:
<script src="http://localhost:5984/_utils/script/jquery.couch.js"></script>
由于以前的问题,使用jquery迁移:
<script src="http://code.jquery.com/jquery-migrate-1.2.1.js"></script>
编辑
我刚才尝试将
crossDomain:true,xhrFields:{withCredentials:true}
添加到我的login
调用中,但没有成功。完全相同的错误消息。我显然缺少一个核心概念。您看到的消息是指服务器,而不是客户端。正如您所报告的,对客户端呼叫所做的更改不会改变结果
特别是在CouchDB 1.4中,必须显式启用CORS支持,并且必须进行起源声明。也就是说,根据您使用CouchDB实例的方式,有两种方法可以启用它:
- 直接更改
local.ini中的设置,然后重新启动实例,有关更多信息,请参见此处:
- 如果您有
可用,请转到设置并在那里找到设置并启用它,在这种情况下无需重新启动futon
希望有帮助。您看到的消息是指服务器,而不是客户端。正如您所报告的,对客户端呼叫所做的更改不会改变结果 特别是在CouchDB 1.4中,必须显式启用CORS支持,并且必须进行起源声明。也就是说,根据您使用CouchDB实例的方式,有两种方法可以启用它:
- 直接更改
local.ini中的设置,然后重新启动实例,有关更多信息,请参见此处:
- 如果您有
可用,请转到设置并在那里找到设置并启用它,在这种情况下无需重新启动futon
希望有帮助。您看到的消息是指服务器,而不是客户端。正如您所报告的,对客户端呼叫所做的更改不会改变结果 特别是在CouchDB 1.4中,必须显式启用CORS支持,并且必须进行起源声明。也就是说,根据您使用CouchDB实例的方式,有两种方法可以启用它:
- 直接更改
local.ini中的设置,然后重新启动实例,有关更多信息,请参见此处:
- 如果您有
可用,请转到设置并在那里找到设置并启用它,在这种情况下无需重新启动futon
希望有帮助。您看到的消息是指服务器,而不是客户端。正如您所报告的,对客户端呼叫所做的更改不会改变结果 特别是在CouchDB 1.4中,必须显式启用CORS支持,并且必须进行起源声明。也就是说,根据您使用CouchDB实例的方式,有两种方法可以启用它:
- 直接更改
local.ini中的设置,然后重新启动实例,有关更多信息,请参见此处:
- 如果您有
可用,请转到设置并在那里找到设置并启用它,在这种情况下无需重新启动futon
希望有帮助。对于那些使用Cookie身份验证(而不是密码身份验证)并在CouchDB服务器返回的Ajax请求中重用Cookie的人,您仍然需要在对CouchDB的$.Ajax()请求中执行此操作:
xhrFields: {withCredentials: true},
这意味着您必须打开来自coach服务器的jquery.coach.js文件,并手动将该选项插入javascript
如果不在客户端执行此操作并在服务器端设置“credentials=true”,CORS就无法为我工作
现在编写的原始jquery.coach.js不支持客户端通过CORS发送Cookie,因此您必须自己发送Cookie,直到有人打开票据才能修复此问题。适用于使用Cookie身份验证(而不是密码身份验证)的用户如果要重用CouchDB服务器返回的Ajax请求中的cookie,您仍然需要在对CouchDB的$.Ajax()请求中执行此操作:
xhrFields: {withCredentials: true},
这意味着您必须打开来自coach服务器的jquery.coach.js文件,并手动将该选项插入javascript
如果不在客户端执行此操作并在服务器端设置“credentials=true”,CORS就无法为我工作
现在编写的原始jquery.coach.js不支持客户端使用CORS发送Cookie,因此您必须自己发送Cookie,直到有人打开票证才能修复此问题。适用于使用Cookie身份验证(而不是密码身份验证)并在Ajax中重用Cookie的用户