【发布时间】:2015-08-06 11:20:55
【问题描述】:
我对 Angular 有点陌生,在尝试发布到 Drupal 服务端点时遇到问题。我可以使用 HttpRequester(FFox 插件)进行发布,但是我使用 Angular 发布数据以获取会话的所有尝试都会导致 401 Unauthorized: missing required argument username or other errors。
这是我使用默认输入的测试工厂资源:
userInfoApp.factory('LoginService', function($resource) {
return $resource('/auth-service/user/login', {username: 'admin', password: 'admin'}, {
update: {
method: 'POST', // this method issues a POST request
headers:{'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8'}
}
});
});
这是我在控制器内部对其进行的调用(this):
this.login = function() {
var login = LoginService.update(function(data) {
console.log(data);
});
};
到目前为止,这通常会导致生成如下查询字符串:
http://project.loc/auth-service/user/login?password=admin&username=admin
以及以下的回应:
401 Unauthorized : 缺少必需的参数用户名
我在这里可能做错了什么?我已经让 $resource 可以与其他端点一起正常工作(例如用于检索菜单的菜单服务),但是发布似乎更加挑剔。任何建议将不胜感激。
谢谢
【问题讨论】:
-
您的 $resource 配置似乎正在使用 POST 方法。并且您的 URL 有查询字符串?你能检查一下你的 Drupal 服务端点是否可以获得这些参数吗?我相信你的 Drupal 服务调试不会得到参数!
-
否,服务无法获取参数。事实上,我不希望这样。我希望 POST 实际发布。登录不应该发生在查询字符串上。
标签: angularjs web-services rest post