CouchDB + 凭据 + 源通配符的 CORS 问题

4
我正在尝试从Cloudant迁移到flow.ch上的Jelastic。在本地测试(ionic serve)时,使用pouchdb时遇到了CORS错误。
除了CouchDB之外,Jelastic中是否有其他配置我需要注意?
XMLHttpRequest无法加载http://xxx.flow.ch/xxx。预检请求的响应未能通过访问控制检查:当请求的凭据模式为'include'时,响应中'Access-Control-Allow-Origin'标头的值不能是通配符'*'。因此,来自http://localhost:8100的来源不允许访问。由XMLHttpRequest启动的请求的凭据模式由withCredentials属性控制。
  1. 我在Jelastic上配置了CouchDB并激活了CORS。 在此输入图像描述 在此输入图像描述

  2. 使用CURL进行普通访问可以正常工作。从Cloudant到Jelastic的复制也成功了。

  3. 我尝试使用Chrome扩展程序启用“Allow-Control-Allow-Origin: *”

1个回答

6

couchdb文档中说到:

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

因此,如果你想让带有凭据的跨源请求与couchdb一起工作,你必须将origins值设置为允许来源的显式列表;例如:

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

这并不是CouchDB特定的。实际上,它是CORS的规范。因此,任何已设置CORS的服务器端系统都不会允许这样做。 - Suraj Rao

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接