Javascript 为什么可以';我不能在IE 9中进行递归$http请求,但我可以在Firefox和Chrome中进行递归$http请求

Javascript 为什么可以';我不能在IE 9中进行递归$http请求,但我可以在Firefox和Chrome中进行递归$http请求,javascript,internet-explorer,angularjs,Javascript,Internet Explorer,Angularjs,我有一个函数包装了一个$http请求,成功后再次调用该函数。它在Chrome和Firefox中工作得很好,但在IE中,它在初始请求后不会再发出请求,我在网上和这里搜索了stack overflow,但我无法找到任何有类似问题或任何解决方案的人 以下是我的职能: var poll = function () { if (parseInt($scope.progress) < 100) { temp = parseInt($scope.progress) + 1;

我有一个函数包装了一个$http请求,成功后再次调用该函数。它在Chrome和Firefox中工作得很好,但在IE中,它在初始请求后不会再发出请求,我在网上和这里搜索了stack overflow,但我无法找到任何有类似问题或任何解决方案的人

以下是我的职能:

var poll = function () {

    if (parseInt($scope.progress) < 100) {
        temp = parseInt($scope.progress) + 1;
        $scope.progressPolling();
    }
}

$scope.progressPolling = function () {
    alert("progressPolling " + i);
    i++;
    $http.get(url)
        .success(function (data, status, headers, config) {

        var percent = data.percentage;
        alert("percent" + percentage);
        if (parseInt($scope.progress) < 100) {
            if (percent <= 100) {
                $scope.progress = percent;
            }
            poll(); 
        }

    }).error(function (data, status, headers, config) {
        alert("An Error Has Occured");
        console.log("Error updating Progress: " + data);

    });
var poll=函数(){
if(parseInt($scope.progress)<100){
temp=parseInt($scope.progress)+1;
$scope.progressPolling();
}
}
$scope.progressPolling=函数(){
警报(“progressPolling”+i);
i++;
$http.get(url)
.success(函数(数据、状态、标题、配置){
var百分比=数据百分比;
警报(“百分比”+百分比);
if(parseInt($scope.progress)<100){

如果(百分比,感谢Arun Killu和Chandermani指出这可能是缓存请求头

我可以用两种方法解决它

  • 将日期和时间附加到get请求URL以使其唯一

    $http.get(url+'?time='+新日期().toString())

  • 使用meta标记:


  • 获取请求获取缓存检查响应的缓存头。如果没有缓存头,那么即使IE也不应该缓存内容。感谢各位,我从来没有想到这是缓存问题