Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
与CouchDB的CORS问题+;证书+;原点通配符_Cors_Ionic2_Couchdb_Jelastic - Fatal编程技术网

与CouchDB的CORS问题+;证书+;原点通配符

与CouchDB的CORS问题+;证书+;原点通配符,cors,ionic2,couchdb,jelastic,Cors,Ionic2,Couchdb,Jelastic,我正试图在flow.ch上从Cloudant迁移到Jelastic。我在本地测试(离子服务)时,PockDB出现CORS错误 除了CouchDB之外,Jelastic中还有其他配置吗? 无法加载XMLHttpRequest。对飞行前请求的响应未通过访问控制检查:当请求的凭据模式为“包括”时,响应中“访问控制允许来源”标头的值不得为通配符“*”。因此,不允许访问源“”。XMLHttpRequest启动的请求的凭据模式由withCredentials属性控制 我在Jelastic上配置了CouchD

我正试图在flow.ch上从Cloudant迁移到Jelastic。我在本地测试(离子服务)时,PockDB出现CORS错误

除了CouchDB之外,Jelastic中还有其他配置吗?

无法加载XMLHttpRequest。对飞行前请求的响应未通过访问控制检查:当请求的凭据模式为“包括”时,响应中“访问控制允许来源”标头的值不得为通配符“*”。因此,不允许访问源“”。XMLHttpRequest启动的请求的凭据模式由withCredentials属性控制

  • 我在Jelastic上配置了CouchDB并激活了CORS。

  • 通过CURL正常访问。从Cloudant到Jelastic的复制也起到了作用

  • 我尝试使用Chrome扩展来启用“Allow Control Allow Origin:*”

  • 委员会:

    您不能同时设置
    origins=*
    credentials=true
    选项

    因此,这似乎意味着,如果希望具有凭据的跨源请求与couchdb一起工作,则必须将
    origins
    值设置为允许的源的显式列表;例如:

    [cors]
    origins = http://localhost, https://localhost, http://couch.mydev.name:8080
    

    顺便说一句,这似乎应该作为couchdb提出。当设置了
    credentials=true
    时,couchdb没有理由不支持允许来自所有来源的请求

    许多/大多数其他Web服务器系统支持在包含凭据时允许来自所有来源的请求。它们处理它的方式都是只取
    Origin
    请求头的值,基本上只是将其回显到
    Access Control Allow Origin
    响应头的值

    实现这样做的服务器代码很简单

    但是,如果不能真正纠正这一缺陷,couchdb维护人员至少应该在您尝试设置这两个
    origins=*
    +
    credentials=true
    时修复其配置处理代码,使其难以失败


    因为问题是,文档中的语句“您不能同时设置
    origins=*
    credentials=true
    选项”是不正确的。显然,您可以同时设置这两个选项(正如您的配置屏幕截图所证明的那样)-只是系统不会发出任何明显的警告/错误来告诉您,如果您将couchdb设置为这种方式,任何发送凭据的客户端请求都将失败。

    我认为您看到的问题的原因只与couchdb缺陷有关,事实上,您使用的jelastic对这两种方式都没有任何影响,您使用的客户机代码也不重要(重要的是,客户机正在发送带有凭据的跨源请求,因此如果您使用的是其他客户机代码,那么您也会遇到同样的问题).它不是特定于CouchDB的..它实际上是。因此,没有一个具有CORS设置的服务器端系统会允许这样做。couchdb的特点是couchdb无法在响应中自动回显源代码。许多或大多数其他具有CORS支持的服务器端系统都提供了这种功能。