transformRequest无法在angularjs 1.2.21中工作

时间:2014-11-30 13:26:10

标签: javascript angularjs

我正在使用$ http制作api调用方法。
我希望在服务调用之前对请求做一些更改。因此,我在$ http的配置中使用transformRequest。 但是,如果我在$ http配置中使用transformRequesttransformResponse,则此调用无效。
没有transformRequesttransformResponse api调用正常工作。

var deferred = $q.defer();
$http({
        method: type,
        url: url,
        params: null,
        data: data,
        headers: null,
        transformRequest: function(data, headersGetter) {
            console.log('transformRequest');
        },
        transformResponse: function(data, headersGetter) {
            console.log('transformRequest');
        },
        cache: false,
        timeout: 120000 // 2 Min
    })
    .success(function(data, status, headers, config) {
        deferred.resolve(data);
    })
    .error(function(data, status, headers, config) {
        deferred.reject(data);
    });
return deferred.promise;

我当前版本的angularjs是 1.2.21

1 个答案:

答案 0 :(得分:0)

我需要从transformRequest& transformResponse
更新的代码:

var deferred = $q.defer();

    $http({
            method: type,
            url: url,
            params: null,
            data: data,
            headers: null,
            transformRequest: function(data, headersGetter) {
                console.log('transformRequest');
                // Do transformRequest stuff here
                return angular.toJson(data);
            },
            transformResponse: function(data, headersGetter) {
                console.log('transformRequest');
                // Do transformResponse stuff here
                return angular.fromJson(data);
            },
            cache: false,
            timeout: 120000 // 2 Min
        })
        .success(function(data, status, headers, config) {
            deferred.resolve(data);
        })
        .error(function(data, status, headers, config) {
            deferred.reject(data);
        });
    return deferred.promise;