1

当我在 AngularJS 应用程序中实例化以下代码时,我在 transformResponse 函数(代码底部)中得到了奇怪的数据。我没有从任何控制器调用 $resource 函数,只是在浏览器中加载脚本。加载应用程序时,数据变量(参见代码)包含当前部分的 HTML 。

这似乎很奇怪。这是它应该的方式吗?

var buddyServices = angular
.module('buddyServices', ['ng','ngResource'])
.factory('Buddy',
    function ($resource) {    console.log('resource');
        return $resource('http://webservice.buddyplatform.com/v1/:service',
            {service:'', BuddyApplicationName: 'xxx',
            BuddyApplicationPassword: 'yyy'}
        );
    }
)
.config(function($httpProvider){
    delete $httpProvider.defaults.headers.common['X-Requested-With'];
    $httpProvider.defaults.transformResponse = function(data) {   
        console.log(data);
        return 'TEST: '+data;
    };
});

=== 编辑 ===

这让我很害怕:$httpProvider 处理所有的 http 请求,所以页面加载就是其中之一。我现在有点猜测,但似乎很有可能。那么,问题就变成了:是否有一种“简单”的方法可以将上面代码中的数据限制为仅由我的服务执行的那些请求?

4

1 回答 1

1

transformResponse接受另一个参数headersGetter。您可以使用它来获取与响应一起发送的标头。寻找Content-Type标题标题。它应该包含application/json

于 2013-07-27T12:01:40.493 回答