angularjs - 如何从AngularJS中的JSONP错误回调获取数据?

标签 angularjs jsonp

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

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

});

最佳答案

正如 Brandon Tilley 所说,不可能从带有 http 错误代码的 jsonp 响应中获取数据。如果您想获取错误消息,则需要发送类似 {result: false, msg: 'Error goneed...'} 的内容,并带有“良好”http 代码,例如 200。

关于angularjs - 如何从AngularJS中的JSONP错误回调获取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14517709/

相关文章:

angularjs - 当 ng-grid 创建为隐藏时,如何将其扩展到整个宽度?

javascript - 重写指令以不使用隔离范围?

javascript - 将 JSON 对象成员字符串值连接在一起

javascript - 来自 javascript 的同步 Json 调用

php - jQuery 循环 JSON 数据

javascript - Angularjs:过滤包含子字符串的ng-repeat中的项目

angularjs - Moment.js 未捕获的语法错误

javascript - Angular 检测 View 是否完成

jquery - 使用 jsonp 对 localhost php 的 Ajax 请求不起作用

jquery - JSONP如何检索文本