2

angularjs で jsonp エラー コールバックから応答メッセージを取得しようとしていますが、応答データが未定義です。409 http コードで応答を返します。jsonp url をブラウザで直接開くと、「angular.callbacks._0({"message":"Reset link is illegal"})」と表示されますが、エラー コールバックでこのメッセージを取得できません。私は何を間違っていますか?

// 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}
        });
    }

});
4

1 に答える 1

2

Brandon Tilley が言ったように、http エラー コードで jsonp 応答からデータを取得することはできません。とにかくエラーメッセージを取得したい場合は、次のようなものを送信する必要があります {result: false, msg: 'エラーが発生しました...'} 「良い」httpコード、たとえば200

于 2013-01-30T10:20:13.213 に答える