sha*_*ine 4 angularjs restangular
在IE中,当我更新或销毁列表中的项目时,操作成功,但更新的列表/数据不会从服务器返回,因此列表未在视图中更新.
我试过以下无济于事:
angular.module('casemanagerApp')
.config(function($stateProvider, $urlRouterProvider, RestangularProvider) {
if (!RestangularProvider.setDefaultHeaders) {
RestangularProvider.setDefaultHeaders({});
}
RestangularProvider.setDefaultHeaders({'If-Modified-Since': 'Mon, 26 Jul 1997 05:00:00 GMT'});
RestangularProvider.setDefaultHeaders({'Cache-Control': 'no-cache'});
RestangularProvider.setDefaultHeaders({'Pragma': 'no-cache'});
$stateProvider
...
});
Run Code Online (Sandbox Code Playgroud)
有人能指出我正确的解决方案吗?
我建议配置$httpProvider而不是RestangularProviderRestangular $http在幕后使用:
angular.module('casemanagerApp')
.config(function($stateProvider, $urlRouterProvider, $httpProvider) {
if (!$httpProvider.defaults.headers.get) {
$httpProvider.defaults.headers.get = {};
}
$httpProvider.defaults.headers.get['If-Modified-Since'] = 'Mon, 26 Jul 1997 05:00:00 GMT';
$httpProvider.defaults.headers.get['Cache-Control'] = 'no-cache';
$httpProvider.defaults.headers.get.Pragma = 'no-cache';
//...
});
Run Code Online (Sandbox Code Playgroud)
编辑
我只是阅读了restangular.js代码,该setDefaultHeaders函数看起来不会附加更多标题但覆盖默认标题:
object.setDefaultHeaders = function(headers) {
config.defaultHeaders = headers;
object.defaultHeaders = config.defaultHeaders;
return this;
};
Run Code Online (Sandbox Code Playgroud)
这意味着您只设置了'Pragma'标头,这可能不足以阻止缓存.
您可以尝试执行以下操作:
RestangularProvider.setDefaultHeaders({
'If-Modified-Since': 'Mon, 26 Jul 1997 05:00:00 GMT',
'Cache-Control': 'no-cache',
'Pragma': 'no-cache'
});
Run Code Online (Sandbox Code Playgroud)
这种方式只有Restangular调用会添加标题,而常规http调用则不会.
| 归档时间: |
|
| 查看次数: |
1329 次 |
| 最近记录: |