在Angular JS中,什么是默认的'缓存'使用$ http服务发送请求时使用的值?

时间:2014-12-30 13:26:12

标签: angularjs angular-http

我刚开始使用Angular JS开发一个小应用程序。在我的一个Angular控制器中,我编写了以下代码:

$scope.createAccount = function () {

        var request = {
            method: 'POST',
            url: '/nxpense/account/new',
            params: {
                email: this.email,
                password: this.password,
                passwordRepeat: this.passwordRepeat
            }
        };

        var response = $http(request);
        ...

第一次发送请求时,一切都很好。但是,当第二次发送相同的请求时,实际上没有发送任何内容:我在后端代码中设置了一个断点,并使用Chrome开发人员工具检查了网络活动,我发现实际上没有发出任何请求。

我在AngularJS文档中搜索了这个问题,但只是声明了'缓存'可以将属性添加到请求对象以配置要使用的缓存。

所以我的问题是:这个属性的默认值是什么(显然,它会是' true',就像我的情况一样,之前的结果会返回给控制器而没有请求已发出)?

另外,如何检查/更改其默认值?我期待像

这样的对象
$http.defaults.request

存在,但它没有......

1 个答案:

答案 0 :(得分:0)

如何检查/更改其默认值?

 $httpProvider.defaults.cache = true;

要确定缺少对服务器的调用,您应该添加异常处理以确保在请求期间发生的任何错误都可见:

 $http(request).
          success(function(data, status) {
            ...
          }).
          error(function(data, status) {
            debugger;
        });

编辑:要回答您的其他具体问题:

这个属性的默认值是什么(显然,它会是' true',因为在我的情况下,先前的结果会在没有发出请求时返回给控制器)​​?

如果通过"此属性"您的意思是$httpProvider.defaults.cache,值为undefined

作为旁注,看起来您正在进行非幂等通话(创建新的电子邮件地址),因此如果您正在缓存,则不应该这样做。