Angular http获取不刷新数据

时间:2015-05-15 21:33:05

标签: json angularjs

当我的页面启动时,setDataOnPage2执行并正常工作。我能够将数据导入$ scope.records以将其呈现给页面。

    $scope.setDataOnPage2 = function () {

    $http({
        method: 'get',
        url: GetSchedule,
        params: {
            date: $scope.currentDate
        }
    }).success(function (results) {
        console.log(JSON.stringify(results));
        $scope.records = results; 
    });
    }
    $scope.setDataOnPage2();

我的问题是当我使用ng-click从按钮点击此功能时。当我单击按钮时,我在JSON演示文稿中看到结果,因为console.log(JSON.stringify(results)),但它是旧数据。

当我打开我的电脑上的表格它工作正常,然后我去手机更新数据很好,但当我点击执行setDataOnPage2的刷新按钮时,它在控制台中显示JSON,但没有' t显示我在手机上所做的更新,直到我刷新页面。我不确定为什么我的http调用会缓存我的数据。

我甚至在后面的代码中放置一个断点,http get应该执行,但它只在页面刷新时执行,而不是在我单击执行setDataOnPage2的刷新按钮时执行。

奇怪的是,json出现在控制台中,但数据没有刷新,并且没有达到断点。

关于为什么会发生这种情况的任何想法?

1 个答案:

答案 0 :(得分:7)

这可能是浏览器上的缓存问题。浏览器可能会缓存get请求。要避免此问题,只需在请求网址中附加时间戳。

GetSchedule+"&random="+new Date().getTime() 

如果您已经有查询参数,否则请使用

GetSchedule+"?random="+new Date().getTime() 

或者您也可以添加标题以避免像

这样的缓存
 headers: {
                'Cache-Control': 'no-cache',
                'Pragma':'no-cache'
            },