Ruby on rails 设置成功和错误响应
我的angular代码中有一个ajax请求,用于通过API登录用户:Ruby on rails 设置成功和错误响应,ruby-on-rails,angularjs,Ruby On Rails,Angularjs,我的angular代码中有一个ajax请求,用于通过API登录用户: $http.post(LOGIN, { username: username, password: password }).success(function(response){ console.log('response:') console.log(response); console.log('_________') }).error(function(response){
$http.post(LOGIN, {
username: username,
password: password
}).success(function(response){
console.log('response:')
console.log(response);
console.log('_________')
}).error(function(response){
console.log('response:')
console.log(response);
console.log('_________')
})}
除了响应
变量之外,它工作得非常好。如果触发成功,则本地响应
变量设置为空字符串(未定义),如果触发失败,则该响应
变量设置为空字符串
以下是我在控制台中得到的信息:
POST http://0.0.0.0:3000/sessions 401 (Unauthorized)
response:
_________
如果我返回200状态:
response:
_________
以下是我的服务器端rails代码:
def login
status = :unauthorized
status = :ok if User.find_by(username: session_params[:username]).try(:authenticate, session_params[:password])
head status
end
在我正在读的书中,我们实际上向用户显示了错误响应。我应该如何更改服务器端代码,以便用实际消息填充response
?或者我应该以某种方式修改客户端代码吗?根据(返回部分)success and error receive next属性:
success(function(data, status, headers, config, statusText) {}
您可以看到,第一个参数是数据,而status是第二个参数。您不返回任何数据。要获取状态代码,您必须执行以下操作:
.success(function(data, status){
console.log('response:')
console.log(data + ' ' + status);
console.log('_________')