无法通过角度将用户添加到couchDB,但可以与邮递员一起使用

时间:2014-12-03 15:03:10

标签: json angularjs couchdb

编辑:原因是因为在cors下的couchDB配置中,PUT未启用。启用此功能后,它可以正常工作!

我正在尝试向couchDB添加一个新用户,它可以与邮递员一起使用,以获得一个例子

我使用管理员用户名和密码设置标题,然后发送以下内容

http://vps.xxxxxxxxx:5984/_users/org.couchdb.user:test

使用以下JSON

{"name":"dfbfdb","password":"fbdbfd","roles":[],"type":"user"}

我回来了

{"ok":true,"id":"org.couchdb.user:test","rev":"1-a9925d62c9529ab695ef0e7ff98e9965"}

然而,当试图在agular中做同样的事情时,我一直只是

OPTIONS http://vps.xxxxxx:5984/_users/org.couchdb.user:test2 
(index):1 XMLHttpRequest cannot load http://vps.xxxxxx:5984/_users/org.couchdb.user:test2. Invalid HTTP status code 405

我为此建立的控制器如下所示。

app.controller('signUpController', ['UserService', '$http', '$location',
    function(UserService, $http, $location) {
        this.user = {
            username: this.username,
            password: this.password
        }
        this.register = function() {
            var user = {
                name: this.user.username,
                password: this.user.password,
                roles: [],
                type: 'user'
            }
            console.log(user)
            $http({
                url: "http://vps.xxxxxxx:5984/_users/org.couchdb.user:" + user.name,
                method: 'PUT',
                withCredentials: true,
                headers: {
                    'Authorization': auth_hash('adminname', 'adminpass')
                },
                data: user
            }).success(function(data, status, headers, config) {
                console.log('user added')
            }).error(function(data, status, headers, config) {
                console.log(angular.toJson(user))
                console.log(status)
                console.log(headers)
                console.log(config)
            })
        }
    }
]);

有没有人知道为什么它不会通过角度来做到这一点?

由于

1 个答案:

答案 0 :(得分:0)

在CouchDB配置中

http://localhost:5984/_utils/config.html

确保' PUT'方法可以在CORS中使用。

因为我在不同的域上更新数据库,所以这就是我收到405错误的原因。