【发布时间】:2014-11-28 13:44:10
【问题描述】:
我刚开始使用restangular。话虽如此,我有以下 POST 调用,由于某种原因没有按预期工作。
Restangular.all("user").all("login").post({username: 'test@user.com', password: 'xyz'}).then(function(account)
{
console.log(account);
});
我看到 POST 请求发送到正确的 URL /api/v1/user/login。但是,post 参数似乎没有被传递。查看同一个 POST 请求,我看不到用户名/密码数据。此外,我的 API 抛出一个未经授权的错误,告诉我它无法根据凭据验证用户。
我也尝试过如下变种...
Restangular.one("user").post("login", {username: 'test@user.com', password: 'xyz'}).then(function(account)
{
console.log(account);
})
似乎仍然没有发送帖子数据。我也试过...
Restangular.all("user").post("login", {username: 'test@user.com', password: 'xyz'}).then(function(account)
{
console.log(account);
})
这似乎创建了一个不正确的 url /api/v1/user,并且仍然看不到任何帖子数据。
我可以对 /api/v1/user/login 执行 cURL POST 请求,毫无问题地传入 POST 数据。
cURL -X POST /api/v1/user/login -d "username=test@user.com&password=xyz"
我还更新了我的 curl 声明,正如 @David 在他对...的回答中所建议的那样
curl -X POST -d '{"username": "test@user.com", "password": "xyz"}' '/api/v1/user/login' -H Content-Type:application/json
这仍然有效。但是,使用 restangular 发布不会...
Restangular.all("user").post("login", {username: 'test@user.com', password: 'xyz'}).then(function(account)
{
console.log(account);
})
其他想法?
【问题讨论】:
-
刚刚面对同样的静止角行为。你解决了这个问题吗?
-
我也有同样的问题,请问有答案吗?我的意思是restangular不能传递body参数吗?
标签: ruby-on-rails angularjs ruby-on-rails-4 restangular