gpt4 book ai didi

couchdb - 如何在Mac OSX中将SproutCore连接到CouchDB

转载 作者:行者123 更新时间:2023-12-03 13:37:56 24 4
gpt4 key购买 nike

我正在使用SproutCore从NetTuts + premium的教程中查询Mac OSX(10.6.7)上的CouchDB数据库。数据库名称为微博。查询解析为以下字符串:

"http://localhost:5984/microblog/_design/posts/_view/posts?descending=true"

如果直接在浏览器的地址栏中键入此查询,则会得到一个不错的json答案。但是通过SproutCore应用程序,我收到一条错误消息:
405 Method Not Allowed

这是为什么?那是因为SC用完了:4020,而CouchDB用完了:5984吗?有任何想法吗?

最佳答案

由于存在Javascript跨域法规,因此不允许您从浏览器中查询任何任意URL。如果您从localhost:4020加载了 Sproutcore 页面,则禁止与该主机上的任何其他主机或端口联系。

为了克服这个问题,通常将您的 Sproutcore 主机托管到后端。您可以通过在 Sproutcore 构建文件中包含类似以下内容的代理语句来完成此操作

proxy "/microblog", :to => "localhost:5984"

它将所有请求转发到localhost:4020/microblog到后端localhost:5984/microblog。可以想象,这可能会导致无法将sc应用程序中的url设置为所需值的问题,常见的情况是,您的sc应用程序也被命名为“microblog”,因此上述proxy指令将导致您的sc应用程序网址被覆盖。

要解决该问题,您可以在sc应用程序中使用另一个网址来联系后端,例如/db,然后在proxy指令中使用url参数来重写目标url:
proxy "/db", :to => "localhost:5984", :url => "microblog"

然后,所有对localhost:4020/db的请求都将转发到localhost:5984/microblog,并且不再干扰您在localhost:4020/microblog上的sc应用程序。

关于couchdb - 如何在Mac OSX中将SproutCore连接到CouchDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6234105/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com