AngularJS PHP restful api缓存结果

AngularJS PHP restful api缓存结果,php,angularjs,rest,Php,Angularjs,Rest,我正在处理一个简单的POC任务列表,并且在rest服务返回时遇到了问题,我假设返回的是缓存结果。我以用户X的身份登录应用程序并返回任务列表,当我以用户Y的身份注销并登录时,用户X的任务列表仍然显示,直到我刷新页面为止。我的rest服务接收一个用户令牌并收回该用户的任务,当我记录令牌时,我可以看到每个用户的任务不同,但在刷新之前,结果是相同的 更新附加在末尾的分辨率 刷新前的控制台日志结果(f5) 刷新后 API_KEY:: 479ba4c2228fad5b6d911e82d34873a1 Obj

我正在处理一个简单的POC任务列表,并且在rest服务返回时遇到了问题,我假设返回的是缓存结果。我以用户X的身份登录应用程序并返回任务列表,当我以用户Y的身份注销并登录时,用户X的任务列表仍然显示,直到我刷新页面为止。我的rest服务接收一个用户令牌并收回该用户的任务,当我记录令牌时,我可以看到每个用户的任务不同,但在刷新之前,结果是相同的

更新附加在末尾的分辨率

刷新前的控制台日志结果(f5)

刷新后

API_KEY:: 479ba4c2228fad5b6d911e82d34873a1
Object {id: 1, task: "task goes here", status: 0, createdAt: "2015-12-08 21:14:17"}
这是我用来调用GET请求的angularjs工厂:

smlServices.factory('UserTasks', function($resource, $window){
    return $resource("http://koding.io/api/index.php/tasks", {}, {
        get: {method: 'GET', cache: false, isArray: false, headers:{'Content-Type':'application/x-www-form-urlencoded', 'Authorization': $window.sessionStorage.token}},
        save: {method: 'POST', cache: false, isArray: false, headers:{'Content-Type':'application/x-www-form-urlencoded', 'Authorization': $window.sessionStorage.token}}
    });
});
这是我给工厂打电话的控制器:

smlControllers.controller("UpdateTasksCtrl", function($scope, UserTasks, $window){
    $scope.title = "Update Tasks";

    console.log($window.sessionStorage.token);
    UserTasks.get(
        {},
        function success(response){
            console.log(response.tasks[0]);
            $scope.tasks = response.tasks;
        },
        function error(errorResponse){
            $scope.message = 'Service is down. Please try again later';
        }
    );
});
以下是我的注销函数调用:

_userFactory.logout = function(){
    if(AuthFactory.isLogged) {
        AuthFactory.isLogged = false;
        delete AuthFactory.user;

        delete $window.sessionStorage.token;
        delete $window.sessionStorage.user;

        $location.path("/login");
    }
};
这是任务的显示:

<div class="container">
    <h1>{{title}}</h1>

    <div class="row">

        <h1>{{tas}}</h1>
        <table class="col-md-2 table-bordered" ng-repeat="task in tasks">
            <tr>
                <th>Id</th>
                <td>{{task.id}}</td>
            </tr>
            <tr>
                <th>Task</th>
                <td>{{task.task}}</td>
            </tr>
            <tr>
                <th>Status</th>
                <td>{{task.status}}</td>
            </tr>
            <tr>
                <th>Created</th>
                <td>{{task.createdAt}}</td>
            </tr>
        </table>
    </div>
</div>
应用程序配置代码段:

smlApp.config(function($locationProvider, $routeProvider, $httpProvider){
    $httpProvider.interceptors.push('TokenInterceptor');
    $routeProvider.
        when('/', {
$resource api服务调用代码段:

smlServices.factory('UserTasks', function($resource){
    return $resource("http://koding.io/api/index.php/tasks", {}, {
        get: {method: 'GET', cache: false, isArray: false, headers:{'Content-Type':'application/x-www-form-urlencoded'}},
        save: {method: 'POST', cache: false, isArray: false, headers:{'Content-Type':'application/x-www-form-urlencoded'}}
    });
});

您是否使用ui路由器进行路由?如果是,则可以尝试禁用缓存选项:
$stateProvider.state('app',{url:…,cache:false})我使用$routeProvider来确定模板URL
smlApp.config(function($locationProvider, $routeProvider, $httpProvider){
    $httpProvider.interceptors.push('TokenInterceptor');
    $routeProvider.
        when('/', {
smlServices.factory('UserTasks', function($resource){
    return $resource("http://koding.io/api/index.php/tasks", {}, {
        get: {method: 'GET', cache: false, isArray: false, headers:{'Content-Type':'application/x-www-form-urlencoded'}},
        save: {method: 'POST', cache: false, isArray: false, headers:{'Content-Type':'application/x-www-form-urlencoded'}}
    });
});