【发布时间】:2015-07-23 18:05:27
【问题描述】:
我在移动应用程序中使用 PouchDB 将本地数据库实例与远程数据库实例同步。我需要将_security 文档添加到数据库中。我尝试将 _security 添加到本地 PouchDB 数据库,但它不允许添加/编辑以 _ (设计文档)开头的文档。因为本地数据库中不需要_security 文档,所以我想我可以通过发送 HTTP PUT 请求将其添加到远程数据库中。
使用 cUrl 我可以使用以下命令添加 _security 文档:
curl -X PUT http://dbadmin:'password'@IP.ADDR:5984/databasename/_security -d '{"admins":{"names":["myuser"], "roles":[]}, "readers":{"names":[],"roles":["myreaders"]}}'
而且效果很好。我的 Angular $http 方法有问题。我使用此代码:
$http({
method: 'PUT',
url: "http://dbadmin:password@IP.ADDR:5984/databasename/_security",
data: JSON.stringify({_id: '_security', admins: {names: ['"' + userID + '"'], roles: []}, readers: {names: [], roles: ['"myreaders"']}})
});
我收到此错误:Error: Access to restricted URI denied
我做错了什么?我该如何解决这个问题?
也欢迎任何其他关于如何编写security 文档的建议,即不使用 $http。我查看了:https://github.com/pouchdb/pouchdb/issues/3529 及其链接的页面,但找不到适合我的解决方案。我查看了pouchdb-security 插件,但我希望不必使用插件来编写_security 文档,并且在插件的项目页面(https://www.npmjs.com/package/pouchdb-security)上也找不到有关该插件的任何文档。
【问题讨论】:
标签: angularjs curl couchdb pouchdb