我刚开始使用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
存在,但它没有......
答案 0 :(得分:0)
如何检查/更改其默认值?
$httpProvider.defaults.cache = true;
要确定缺少对服务器的调用,您应该添加异常处理以确保在请求期间发生的任何错误都可见:
$http(request).
success(function(data, status) {
...
}).
error(function(data, status) {
debugger;
});
编辑:要回答您的其他具体问题:
这个属性的默认值是什么(显然,它会是' true',因为在我的情况下,先前的结果会在没有发出请求时返回给控制器)?
如果通过"此属性"您的意思是$httpProvider.defaults.cache
,值为undefined
。
作为旁注,看起来您正在进行非幂等通话(创建新的电子邮件地址),因此如果您正在缓存,则不应该这样做。