本文实例讲述了AngularJS在IE下取数据总是缓存问题解决方法。分享给大家供大家参考,具体如下:
问题:
在使用AngularJS发出请求(GET)获取服务端数据,然后再绑定到页面中,你会发现在IE中总是显示原来的数据结果。这时候我们就会知道,IE做了缓存。
解决办法:
我们可以在AngularJS的配置中通过$httpProvider来设置其不缓存。具体如下所示:
ngApp.config(function ($httpProvider) {
// Initialize get if not there
if (!$httpProvider.defaults.headers.get) {
$httpProvider.defaults.headers.get = {};
}
// Enables Request.IsAjaxRequest() in ASP.NET MVC
$httpProvider.defaults.headers.common["X-Requested-With"] = 'XMLHttpRequest';
//禁用IE对ajax的缓存
$httpProvider.defaults.headers.get['Cache-Control'] = 'no-cache';
$httpProvider.defaults.headers.get['Pragma'] = 'no-cache';
});
针对ie,有时候缓存设置还是会出现问题,针对get的ajax请求我们可以加入参数设置
var randomLogin=new Date().getTime()*Math.random();//参数随机数,避免缓存
$http.get("/getAccount?"+randomLogin).then(function (response) {
}, function () {
});