$ http.error()以字符串形式返回数据

时间:2013-03-28 17:42:04

标签: javascript angularjs

以下是整个$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;
    });

问题是data中的$http.error是一个字符串,尽管返回了以下回复:

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

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

1 个答案:

答案 0 :(得分:1)

是的,有angular.fromJson效用函数。见http://docs.angularjs.org/api/angular.fromJson