【发布时间】: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