2013-01-25 73 views
1

我想从angularjs中获取jsonp错误回调的响应消息,但响应数据是未定义的。我用409个http代码返回响应。如果要直接在浏览器中打开jsonp url,它会显示“angular.callbacks._0({”message“:”重置链接不正确“})”,但我无法在错误回调中获取此消息。我究竟做错了什么?如何从angularjs中的JSONP错误回调中获取数据?

// Extend angular app for api requests 
app.factory('User', function($http) { 

    var User = function(data) { 
     angular.extend(this, data); 
    }; 

    // Send link for password reset to entered email 
    User.reset_password = function() { 
     return $http.jsonp(jsonp_url + 'user/reset_pass?_method=post&user_key=' + user_key + '&callback=JSON_CALLBACK'); 
    }; 

    return User; 
}); 


app.controller('ResetPasswordController', function ResetPasswordController($scope, User){ 

    $scope.submit = function() { 

     var response = User.reset_password(); 

     response.then(function(data){ 
      //Success callback 
     }, function(data){ 
      // Error callback 
      console.log(data) // Output: {config : {...}, data: undefined} 
     }); 
    } 

}); 
+0

这是JSONP 。请参阅http://stackoverflow.com/a/1002797/62082。 –

回答

2

至于说布兰登蒂利是不可能从HTTP错误代码JSONP响应获取数据。如果你想反正得到错误信息,你需要发送类似这样的结果{result:false,msg:'Error occured ...'},例如200.“