【问题标题】:Cannot find solutions to "No 'Access-Control-Allow-Origin' header" with CouchDB使用 CouchDB 找不到“No 'Access-Control-Allow-Origin' header”的解决方案
【发布时间】:2016-07-10 20:11:04
【问题描述】:

我目前正在尝试使用 AngularJS 从 CouchDB 获取一些文档。我的服务器在 localhost:5984 本地运行,我无法从 Brackets' 渲染器访问它。

错误如下:

XMLHttpRequest cannot load http://127.0.0.1:5984/generator/_all_docs. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:54142' is therefore not allowed access.

这个错误听起来众所周知,而且处理起来确实很痛苦,我已经尝试过methods from this question 并搜索了其他一些来源,但似乎没有任何效果。我的 CouchDB 服务器看起来配置良好,在其配置属性中包含以下成员:

[cors]
 credentials = false
 headers = accept, authorization, content-type, origin, referer, cache-control, x-requested-with
 methods = GET,PUT,POST,HEAD,DELETE
 origins = http://localhost


[httpd]
 enable_cors = true

目前,我不需要凭据来访问我的数据,我只需要从 AngularJS 访问它们。我想知道我做了什么/哪里出了问题,如果我的配置或任何事情有问题,如何最终允许我的应用程序访问这些数据。我知道这是一个 CORS 问题,但据我尝试,我发现没有办法这样做。

提前谢谢你!


编辑

我在 Windows 7 中使用 CouchDB 1.6.1 和 AngularJS。我没有在其他网络浏览器上尝试过,但问题目前出现在 Google Chrome 上。

【问题讨论】:

  • 我已经尝试了这个问题中描述的方法,正如我在问题中提到的那样,它们仍然无法正常工作。我只想知道我是否忘记了配置中的任何内容,因为一切似乎都是正确的......
  • 您已将允许的来源设置为http://localhost。根据提供的错误来自http://127.0.0.1:5984 - 但localhost != 127.0.0.1 甚至认为两者都指本地机器。如果您更改配置以允许来自请求发起的实际地址和端口的请求,它应该可以工作。

标签: javascript angularjs cors couchdb adobe-brackets


【解决方案1】:

好的,我解决了这个问题。

this topic 中提出的解决方案是正确的并且解决了问题,但是你不能在编辑你的失败时失败。我来解释一下:

当我第一次尝试时,我在'origins'中忘记了一个's',然后从控制面板将我的错误隐藏了。控制面板只是抑制值,而不是原始标签。当我再次尝试时,这次通过手动编辑 local.ini 文件,我发现了这一行:

origin = 

我猜这会干扰对文件其余部分的良好解释。 当我删除它时,一切都很顺利

问题解决了,感谢The Head Rush 用他的评论推动我走向胜利。

【讨论】:

    猜你喜欢
    • 2015-12-28
    • 1970-01-01
    • 2017-07-20
    • 2022-10-27
    • 2017-12-29
    • 2016-03-24
    • 2018-11-10
    • 1970-01-01
    • 2023-01-13
    相关资源
    最近更新 更多