0

这是整个$http实现的代码:

    $http({
        url: jsurl('profile.login'),
        method: 'POST',
        data: $.param({
            username: $scope.username,
            password: $scope.password,
            csrfmiddlewaretoken: $.cookie('csrftoken')
        }),
        headers: {'Content-Type': 'application/x-www-form-urlencoded'}
    }).
    success(function (data) {
        $scope.success = true;
    }).
    error(function (data) {
        $scope.success = false;
        $scope.errors = data.errors;
    });

问题是datain$http.error是一个字符串,尽管返回了以下响应:

Content-Type:application/json; charset=UTF-8
Body: {"errors":{"username":{"messages":[["Pleaseenteryourusername."]]},"password":{"messages":[["Pleaseenterpassword."]]}},"success":false}

在 jQuery 中,我通常会使用$.parseJSON(),但是我一直听说我不应该在 Angular 代码中使用 jQuery 代码(我还不明白为什么会这样),所以我想知道是否有更 Angular 规范的方法来解析错误响应JSON。

4

1 回答 1

1

是的,有angular.fromJson实用功能。见http://docs.angularjs.org/api/angular.fromJson

于 2013-03-28T18:40:32.853 回答