Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 设置成功和错误响应_Ruby On Rails_Angularjs - Fatal编程技术网

Ruby on rails 设置成功和错误响应

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){

我的angular代码中有一个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('_________')
})}
除了
响应
变量之外,它工作得非常好。如果触发成功,则本地
响应
变量设置为空字符串(未定义),如果触发失败,则该
响应
变量设置为空字符串

以下是我在控制台中得到的信息:

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('_________')