我的角度代码中有一个ajax请求,用于通过我的API签署用户:
$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('_________')
})}
除response
变量外,它完美无缺。如果触发成功,则将本地response
变量设置为空字符串(未定义),如果触发失败,则将response
变量设置为空字符串。
这是我在控制台中得到的内容:
POST http://0.0.0.0:3000/sessions 401 (Unauthorized)
response:
_________
如果我返回200状态:
response:
_________
这是我的服务器端导轨代码:
def login
status = :unauthorized
status = :ok if User.find_by(username: session_params[:username]).try(:authenticate, session_params[:password])
head status
end
在我阅读的书中,我们实际上向用户显示了错误响应。我应该如何更改我的服务器端代码,以便response
填充实际消息?或者我应该改变我的客户端代码?
答案 0 :(得分:0)
根据$http documentation(部分返回)成功和错误接收下一个属性:
success(function(data, status, headers, config, statusText) {}
所以你看到第一个参数是数据,状态是第二个。您不会返回任何数据。要获取状态代码,您必须执行下一步:
.success(function(data, status){
console.log('response:')
console.log(data + ' ' + status);
console.log('_________')