Couchdb 的 CORS 配置
Posted
技术标签:
【中文标题】Couchdb 的 CORS 配置【英文标题】:CORS Configuration for Couchdb 【发布时间】:2016-10-09 01:49:33 【问题描述】:我已经阅读了一堆博客和堆栈溢出帖子,我看到的所有内容都说将 CORS 配置添加到 local.ini 文件中,如下所示:
[httpd]
enable_cors = true
[cors]
credentials = true
origins = *
我们查询 Couchdb 的 JS 如下所示:
$.ajax(
url: "http://xxxx:8093/query/service?statement=select member from edc",
type: 'GET',
dataType: 'json',
crossDomain: true,
success: function(data)
console.log("data: " + JSON.stringify(data));
,
error: function(xhr, status, err)
console.log("error: " + err + " xhr: " + JSON.stringify(xhr));
,
complete: function(data)
alert('complete: ' + JSON.stringify(data))
)
停止并重新启动 windows 服务后,我仍然收到错误:
跨域请求被阻止:同源策略不允许读取 远程资源在 http://phx01-vm117.matrixhealth.net:8093/query/service?statement=select%20member%20from%20edc。 (原因:CORS 标头“Access-Control-Allow-Origin”缺失)。
任何有关配置或 GET 请求的帮助都会很棒,谢谢!使用插件或在非安全模式下运行浏览器不是一种选择
【问题讨论】:
【参考方案1】:我知道从提出这个问题到我回答之间已经过去了很长时间,但我想我会分享一下,以防万一有人的 Google 搜索将它们发送到这里。
这个问题是由于只包含了一半所需的 CORS 选项。在此处查看非常相似问题的答案:how to edit local.ini to enable CROS with couchdb
而不是包括:
[cors]
credentials = true
origins = *
您需要包括:
[cors]
credentials = true
origins = *
methods = GET, PUT, POST, HEAD, DELETE
headers = accept, authorization, content-type, origin, referer
您可能认为前者启用了 CORS.. 确实如此,但是您需要明确授予它权限。
【讨论】:
以上是关于Couchdb 的 CORS 配置的主要内容,如果未能解决你的问题,请参考以下文章
Angular 4 call couchdb有CORS错误,但提琴手中没有出现预检
如何在 couchDB 中添加 cors - 请求的资源上不存在“Access-Control-Allow-Origin”标头