Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.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
Javascript AngularJS$http和如何获取错误响应_Javascript_Angularjs - Fatal编程技术网

Javascript AngularJS$http和如何获取错误响应

Javascript AngularJS$http和如何获取错误响应,javascript,angularjs,Javascript,Angularjs,我看到以下调用服务器端资源的示例: UserSession.prototype.$save = function() { return $http.post('/users/sign_in', { "user" : { "email" : this.email, "password" : this.password, "remember_me" : this.remember_me ? 1 : 0 }

我看到以下调用服务器端资源的示例:

UserSession.prototype.$save = function() {
    return $http.post('/users/sign_in', {
      "user" : { 
        "email" : this.email,
        "password" : this.password,
        "remember_me" : this.remember_me ? 1 : 0 
      }   
    }); 
  };  

我的问题是,如果调用失败,是否可以在代码中看到实际的错误响应?上面的内容是如何编写的?

您需要使用
.error()
回调函数


您需要使用
.error()
回调函数


你错过了回电

UserSession.prototype.$save = function() {
    return $http.post('/users/sign_in', {
      "user" : { 
        "email" : this.email,
        "password" : this.password,
        "remember_me" : this.remember_me ? 1 : 0 
      }   
    })
    .success(function (data, status, headers, config) {
       // success logic here
    })
    .error(function (data, status, headers, config) {
       // error logic here
    });
}; 

你错过了回电

UserSession.prototype.$save = function() {
    return $http.post('/users/sign_in', {
      "user" : { 
        "email" : this.email,
        "password" : this.password,
        "remember_me" : this.remember_me ? 1 : 0 
      }   
    })
    .success(function (data, status, headers, config) {
       // success logic here
    })
    .error(function (data, status, headers, config) {
       // error logic here
    });
}; 

您可以像其他答案所建议的那样,在该函数中定义
.success
.error
回调,但我觉得您更可能希望调用
$save
的应用程序代码来确定成功或失败时要做什么

因此,您可以保持
$save
函数不变,在应用程序中调用
myUserSession.$save()
的任何地方,您都可以执行以下操作:

myUserSession.$save()
   .success(function(data, httpStatus, header, config) {
       ...
   })
   .error(function(data, httpStatus, header, config) {
       ...
   });

这样做只会使代码更易于重用。当然,如果您知道关于save的一个事实,您希望在任何地方都有完全相同的行为,那么只需按照其他答案的建议进行操作。

您可以像其他答案所建议的那样,在该函数中定义
.success
.error
回调,但是我觉得,您更可能希望调用
$save
的应用程序代码来确定成功或失败时要做什么

因此,您可以保持
$save
函数不变,在应用程序中调用
myUserSession.$save()
的任何地方,您都可以执行以下操作:

myUserSession.$save()
   .success(function(data, httpStatus, header, config) {
       ...
   })
   .error(function(data, httpStatus, header, config) {
       ...
   });
这样做只会使代码更易于重用。当然,如果你知道一个关于储蓄的事实,你希望在任何地方都有完全相同的行为,那么就按照其他答案的建议去做吧