我阅读了大量博客和堆栈溢出帖子,以及我看到的将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标题“访问-控制-允许-起源”丢失)。
任何有关配置或GET请求的帮助都将是很棒的,谢谢!使用加载项或在不安全模式下运行浏览器不是一个选项。
发布于 2021-12-20 04:41:00
我知道在这个问题被问到我的答案之间已经过去了很多时间,但我想我应该分享一下,以防任何人的谷歌搜索把它们发送到这里。
造成此问题的原因仅包括所需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..。确实如此,但是您需要显式地授予它权限。
https://stackoverflow.com/questions/37708503
复制相似问题