2013-01-25 55 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.「